Проблемка как отлавливть домены?
1.
Natali0705 (12.12.2010 / 14:32)
В общем вот чорный список доменов которе надо выловить
wen.su|wen9.com|wen9.net|wen9.org|dum.su|fiz.su|hak.su|kan.su|koz.su|muk.su|nab.su|puz.su|tep.su|zat.su|kmh.ru
Пришла идея так
([a-z0-9\-]{3,20}\.wen\.ru)
Но на каждую ето будет трудно и сервер будет матерится
2.
Андрей (12.12.2010 / 14:44)
Глянь скрипты топов,там есть такая функция.
3.
Natali0705 (12.12.2010 / 14:48)
Да ето долго тем-более я плохо розбираюсь
4.
Андрей (12.12.2010 / 14:50)
Я тоже.Но проще глянуть и все.
5.
delete (12.12.2010 / 14:54)
1.
Natali0705, но у топов регулярка подобная, там прописаны запрещеные домены)) так что проще ни как.
6.
Natali0705 (12.12.2010 / 14:56)
Блин а так никто не шарит?
Добавлено через 06:11 сек.
Прийдется делать цикл
$k=explode('|','wen\.su|wen9\.com|wen9\.net|wen9\.org|dum\.su|fiz\.su|hak\.su|kan\.su|koz\.su|muk\.su|nab\.su|puz\.su|tep\.su|zat\.su');
$i=0;
while($k[$i])
{
$i++;
}
7.
Алексей (12.12.2010 / 16:33)
6.
Natali0705,
<?php
function parseUrl($url)
{
$r = "^(?:( ?P<scheme>\w+)://)?";
$r .= "(?:( ?P<login>\w+):( ?P<pass>\w+)@)?";
$ip="(?:[0-9]{1,3}+\.){3}+[0-9]{1,3}";//ip check
$s="(?P<subdomain>[-\w\.]+)\.)?";//subdomain
$d="(?P<domain>[-\w]+\.)";//domain
$e="(?P<extension>\w+)";//extension
$r.="(?P<host>(?(?=".$ip.")(?P<ip>".$ip.")|(?:".$s.$d.$e."))";
$r .= "(?::( ?P<port>\d+))?";
$r .= "(?P<path>[\w/]*/(?P<file>\w+(?:\.\w+)?)?)?";
$r .= "(?:\?(?P<arg>[\w=&]+))?";
$r .= "(?:#(?P<anchor>\w+))?";
$r = "!$r!"; // Delimiters
preg_match($r, $url,$out);
return $out;
}
$array = array('wen.su','wen9.com','wen9.net','wen9.org','dum.su','fiz.su','hak.su','kan.su','koz.su','muk.su','nab.su','puz.su','tep.su','zat.su','kmh.ru');
$url = 'vasya.wen.su'; //site url
$url = parseUrl($url);
if(in_array($url['domain'].$url['extension'], $array))
{
print 'Denied';
}else{
print 'Allow';
}
?>
8.
Андрей (12.12.2010 / 17:28)
7.
МегабиТ, не осилил.много лишнего и не по теме.
9.
Алексей (12.12.2010 / 18:19)
8.
Джон KiPiSH, не по теме твой пост. в мое же посте был приведен один из варионтов решения задачи из поста #1.
10.
Алексей (12.12.2010 / 18:34)
вариантов*
11.
Natali0705 (12.12.2010 / 19:10)
7.
МегабиТ, Спасибо щас затестим
12.
Марсель (08.01.2011 / 21:25)
$a = 'wen.ru|wen.su|wen9.net';
if(preg_match('~('.$a.')~i', 'ya.wen.ru')) die('Запрещенный домен');
хз, нетестил, но должно работать полюбому)
13.
Андрей (26.01.2011 / 11:34)
что вооbщe dолжeн выполнять daнный коd?
14.
Змей (31.01.2011 / 20:28)
if (!preg_match('`(wen\.ru|wen\.su|hak\.su|kmx\.ru)`i', $text)) die('b_b');
15.
Тамирлан (31.01.2011 / 21:28)
ofroke (8 Января 2011 / 21:25)
$a = 'wen.ru|wen.su|wen9.net';
if(preg_match('~('.$a.')~i', 'ya.wen.ru')) die('Запрещенный домен');
хз, нетестил, но должно работать полюбому)
ну скорее эти домены будут работать, а не прописанные уже будут считаться запрещёнными.
16.
Titov (31.01.2011 / 22:36)
<?
function konstruktor($string){
if (eregi("([[:alnum:]_=/-]+(.wen.su|.wen9.com|.wen9.net|.wen9.org|.dum.su|.fiz.su|.hak.su|.kan.su|.koz.su|.muk.su|.nab.su|.puz.su|.tep.su|.zat.su|.kmh.ru))", $string)){
return "Запрещенный домен!";
}else{
return $string;
}
}
?>
17.
Марсель (01.02.2011 / 05:02)
Neo-N82 (31 Января 2011 / 21:28)
ну скорее эти домены будут работать, а не прописанные уже будут считаться запрещёнными.
Ты проверь сначало
Titov, исправь eregi => preg_match .
Давно уже забыть пора про него)
18.
Виктор (01.03.2011 / 12:15)
Так поймает домен даже если указанна директория и страница!
<?php
$string = 'http://site.wen9.net/dir/index.html';
if(error_site($string))
print 'Домен запрещен';
else
print 'Домен разрешён';
function error_site($string)
{
$error = array('wen.su', 'wen9.com', 'wen9.net', 'wen9.org', 'dum.su', 'fiz.su', 'hak.su', 'kan.su', 'koz.su', 'muk.su', 'nab.su', 'puz.su', 'tep.su', 'zat.su', 'kmh.ru');
$string = parse_url($string);
$string['host'] = preg_replace("|.*?([^\.]+\.[^\.]+)$|","\\1", $string['host']);
if (in_array($string['host'], $error))
return 1;
else
return 0;
}
?>
19.
Дмитрий (14.03.2011 / 01:40)
....deleted
20.
Алексей (27.04.2011 / 22:49)
<?php
if (preg_match('/(wen.su|wen9.com|wen9.net|wen9.org|dum.su|fiz.su|hak.su|kan.su|koz.su|muk.su|nab.su|puz.su|tep.su|zat.su|kmh.ru)$/i', $_POST['text']))
{
echo 'Домен запрещен';
}
?>
21.
Александр (28.04.2011 / 14:58)
зачем тут preg_match? Есть же более быстрая и легкая функция strpos()
22.
Марсель (01.05.2011 / 11:39)
Значит так надо
23.
KOZZ (19.05.2011 / 06:49)
21.
rastoman, ну да, и прогоняй эту функцию по каждому возможному совпадению
24.
Ванёк (10.09.2011 / 09:53)
Оо тема то что искал ))
URL:
https://visavi.net/topics/16499