Проблемка как отлавливть домены?

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)
Да ето долго тем-более я плохо розбираюсь sad

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)
ну скорее эти домены будут работать, а не прописанные уже будут считаться запрещёнными.

Ты проверь сначало E

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)
Значит так надо smile

23. KOZZ (19.05.2011 / 06:49)
21. rastoman, ну да, и прогоняй эту функцию по каждому возможному совпадению E

24. Ванёк (10.09.2011 / 09:53)
Оо тема то что искал ))

URL: https://visavi.net/topics/16499