Делаю чисто класcически: PHP: <html> <body> <center> <form action=whois.php method=post> <br> </i></b></font> <br> <INPUT type=text name=ip size=35> <input type=submit value='Введите IP-адрес'> </form> </center> <?php if (!empty($_POST["ip"])) { //соединение с сокетом TCP, ожидающем на сервере //whois.ripe.net по 43 порту //в результате возвращается дескриптор соединения $sock. $sock=fsockopen("whois.ripe.net",43,$errno,$errstr); if(!$sock) exit("$errno($errstr)"); else { //записываем строку из переменной $_POST["ip"] //в дескриптор сокета fputs($sock,$_POST["ip"]."\r\n"); //осуществляем чтение из дескриптора сокета while(!feof($sock)) { echo (str_replace (":",": ", fgets($sock,128))."<br>"); } } //закрываем соединение fclose($sock); } ?> </body> </html> Для многих ip этот скрипт работает, но, к сожалению, для многих и не работает. Вот, например, для этого ip=66.249.66.84 не работает. Смотрел на других солидных сервисах whois - у них тоже для этого ip не работает выдача подробной информации, а выдает, как и у меня следующее: Код (Text): % Information related to '0.0.0.0 - 255.255.255.255' inetnum: 0.0.0.0 - 255.255.255.255 netname: IANA-BLK descr: The whole IPv4 address space country: EU # Country is really world wide org: ORG-IANA1-RIPE admin-c: IANA1-RIPE tech-c: IANA1-RIPE status: ALLOCATED UNSPECIFIED remarks: The country is really worldwide. remarks: This address space is assigned at various other places in remarks: the world and might therefore not be in the RIPE database. mnt-by: RIPE-NCC-HM-MNT ... ... Можно что-то еще сделать или это специфический IP?
Код (Text): gorbunov@ubuntu:~$ whois 66.249.66.84 OrgName: Google Inc. OrgID: GOGL Address: 1600 Amphitheatre Parkway City: Mountain View StateProv: CA PostalCode: 94043 Country: US NetRange: 66.249.64.0 - 66.249.95.255 CIDR: 66.249.64.0/19 NetName: GOOGLE NetHandle: NET-66-249-64-0-1 Parent: NET-66-0-0-0-0 NetType: Direct Allocation NameServer: NS1.GOOGLE.COM NameServer: NS2.GOOGLE.COM NameServer: NS3.GOOGLE.COM NameServer: NS4.GOOGLE.COM Comment: RegDate: 2004-03-05 Updated: 2007-04-10 OrgTechHandle: ZG39-ARIN OrgTechName: Google Inc. OrgTechPhone: +1-650-318-0200 OrgTechEmail: arin-contact@google.com # ARIN WHOIS database, last updated 2008-02-08 19:10 # Enter ? for additional hints on searching ARIN's WHOIS database. gorbunov@ubuntu:~$
Горбунов Олег, значит все-таки можно подробную инфу и об этом ip получить... А как это тебе удалось? Ведь даже на 2ip.ru webnames.ru и др. этого не могут.
Причем тут консоль и линукс? Линукс может и правит, но заправляет все таки винда Но эта виндово-линуксная тема для отдельного разговора. Не хочу ее вновь подымать, а то ожесточенные сторонники линукса меня мигом навечно забанят, хотя сами дома натихаря пользуют именно винду О, эти могут. Но у них проблемы с другими ip. А нельзя ли в одном скрипте информацию о всех ip охватить?
ты то ли правда дурак, то ли актер отличный. можно. если инфу будешь брать с разных страниц для разных ип. не так сложно.
Я вам поражаюсь! Я еще раз говорю, что я не программист, на программиста никогда не учился и основная работа с программированием никак не связана. Но программирование меня к себе тянет, поэтому по свободе этим занимаюсь, можно сказать что это типа хобби. Часто берусь за сложные вещи, но у меня за плечами полно белых пятен в элементарном, может поэтому меня неадекватно воспринимают... А есть где-то перечень, в котором указано какой сервис whois за какой диапазон IP отвечает? Я такого перечня не видел. Если вы мне его покажете, то скрипт тогда написать думаю будет не проблема даже для меня: суть его будет такая же, как и у того, что написан выше, только добавится несколько условий на проверку из какого диапазона IP и какой сервис whois за этот диапазон отвечает. P.S. И заметьте, никаких линуксов и консолей. Причем тут они? Я сначала расценил это как шутку, а теперь даже не знаю что и думать...
Я может чего-то не понимаю, но разве нельзя сделать file_get_contents("http://www.nic.ru/whois/?query=$ip") и обработать полученный результат? Штаны Не воспринимают, а реагируют Горбунов Олег Чел попросил помочь со скриптом, ты ему показал, как это делать в консоли... ничего не замечаешь?
Дык вроде уже написал. Первый абзац. Тот проблемный IP ру-центр показывает как надо. P.S. Нашел кого цитировать
Справедливое замечание! Если эту проблему можно решить средствами php без привлечения консоли, зачем было ее вспоминать? Я наоборот, в целях безопасности, закрыл доступ для php к консоли. Плюс, если я выложу этот скрипт на хостинге, мне тоже доступ к консоли не дадут... Аааа, ну тогда это легче побороть Вот это в принципе и решение! Значит мы нашли, что есть whois сервис, который знает о всех IP - это nic.ru Теперь, если whois.ripe.net:43==false то идем с помощью file_get_contents() на nic.ru , получаем страничку, парсим, извлекаем нужное. Плохо конечно, что придется с нужными и лишние данные грузить, с этой стороны whois.ripe.net удобнее, но ничего, переживем.
блин, так заполняй пробелы. записывай какие ипы из проверенных не идут и ищи альтернативный хуиз для этого блока. боже, убейте меня....
Я этим как раз и занимаюсь. И это я делаю. Но видно у тебя самой, нормального whois-сервиса нет, поэтому твоя критика не имеет конструктивного характера. У меня в книге написано, что если whois-сервис whois.ripe.net:43 не может предоставить информацию по какому-то ip, то он в свем отрицательном ответе в поле ReferralServer: указывает, какой именно whois-сервер ответственен за этот диапазон ip и к которому следует обратиться. Если бы так оно и было, то мои поиски whois-сервера не велись бы наобум. Но загвоздка в том, что этот whois.ripe.net:43 обленился и поле ReferralServer: для ip= 66.249.66.84 не шлет.
тема закрыта, т.к. вместо решения опять начинается галдежь. Штаны старик. будь внимательнее когда тебе что-нить советуют, а то опять тут все идиоты и н понимают твоей гениальности. поверь, без тебя тут никто скучать не будет.