За последние 24 часа нас посетили 15176 программистов и 1672 робота. Сейчас ищут 909 программистов ...

Как сделать нормальный полноценный Whois?

Тема в разделе "Вопросы от блондинок", создана пользователем Штаны, 9 фев 2008.

Статус темы:
Закрыта.
  1. Штаны

    Штаны Guest

    Делаю чисто класcически:
    PHP:
    1.  
    2. <html>
    3. <body>
    4. <center>
    5. <form action=whois.php method=post>
    6. <br>
    7. </i></b></font>
    8. <br>
    9. <INPUT type=text name=ip size=35>
    10. <input type=submit value='Введите IP-адрес'>
    11. </form>
    12. </center>
    13. <?php
    14.     if (!empty($_POST["ip"]))
    15.     {
    16.     //соединение с сокетом TCP, ожидающем на сервере
    17.     //whois.ripe.net по 43 порту
    18.     //в результате возвращается дескриптор соединения $sock.
    19.     $sock=fsockopen("whois.ripe.net",43,$errno,$errstr);
    20.     if(!$sock) exit("$errno($errstr)");
    21.     else
    22.     {
    23.     //записываем строку из переменной  $_POST["ip"]
    24.     //в дескриптор сокета
    25.     fputs($sock,$_POST["ip"]."\r\n");
    26.     //осуществляем чтение из дескриптора сокета
    27.     while(!feof($sock))
    28.     {
    29.     echo (str_replace
    30.     (":",":&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",
    31.     fgets($sock,128))."<br>");
    32.     }
    33.     }
    34.     //закрываем соединение
    35.         fclose($sock);
    36.     }
    37. ?>
    38. </body>
    39. </html>
    40.  
    Для многих ip этот скрипт работает, но, к сожалению, для многих и не работает. Вот, например, для этого ip=66.249.66.84 не работает. Смотрел на других солидных сервисах whois - у них тоже для этого ip не работает выдача подробной информации, а выдает, как и у меня следующее:
    Код (Text):
    1.  
    2. % Information related to '0.0.0.0 - 255.255.255.255'
    3.  
    4. inetnum:       0.0.0.0 - 255.255.255.255
    5. netname:       IANA-BLK
    6. descr:       The whole IPv4 address space
    7. country:       EU # Country is really world wide
    8. org:       ORG-IANA1-RIPE
    9. admin-c:       IANA1-RIPE
    10. tech-c:       IANA1-RIPE
    11. status:       ALLOCATED UNSPECIFIED
    12. remarks:       The country is really worldwide.
    13. remarks:       This address space is assigned at various other places in
    14. remarks:       the world and might therefore not be in the RIPE database.
    15. mnt-by:       RIPE-NCC-HM-MNT
    16. ...
    17. ...
    Можно что-то еще сделать или это специфический IP?
     
  2. Anonymous

    Anonymous Guest

    Код (Text):
    1. gorbunov@ubuntu:~$ whois 66.249.66.84
    2.  
    3. OrgName:    Google Inc.
    4. OrgID:      GOGL
    5. Address:    1600 Amphitheatre Parkway
    6. City:       Mountain View
    7. StateProv:  CA
    8. PostalCode: 94043
    9. Country:    US
    10.  
    11. NetRange:   66.249.64.0 - 66.249.95.255
    12. CIDR:       66.249.64.0/19
    13. NetName:    GOOGLE
    14. NetHandle:  NET-66-249-64-0-1
    15. Parent:     NET-66-0-0-0-0
    16. NetType:    Direct Allocation
    17. NameServer: NS1.GOOGLE.COM
    18. NameServer: NS2.GOOGLE.COM
    19. NameServer: NS3.GOOGLE.COM
    20. NameServer: NS4.GOOGLE.COM
    21. Comment:    
    22. RegDate:    2004-03-05
    23. Updated:    2007-04-10
    24.  
    25. OrgTechHandle: ZG39-ARIN
    26. OrgTechName:   Google Inc.
    27. OrgTechPhone:  +1-650-318-0200
    28. OrgTechEmail:  arin-contact@google.com
    29.  
    30. # ARIN WHOIS database, last updated 2008-02-08 19:10
    31. # Enter ? for additional hints on searching ARIN's WHOIS database.
    32. gorbunov@ubuntu:~$
     
  3. Штаны

    Штаны Guest

    Горбунов Олег, значит все-таки можно подробную инфу и об этом ip получить... А как это тебе удалось? Ведь даже на 2ip.ru webnames.ru и др. этого не могут.
     
  4. Anonymous

    Anonymous Guest

    Из консоли. ) Линукс правит миром. )
     
  5. cf

    cf Активный пользователь

    С нами с:
    28 окт 2007
    Сообщения:
    225
    Симпатии:
    0
    Адрес:
    St. Petersburg, Russia
    консоль правит миром
     
  6. Штаны

    Штаны Guest

    Причем тут консоль и линукс? Линукс может и правит, но заправляет все таки винда :) Но эта виндово-линуксная тема для отдельного разговора. Не хочу ее вновь подымать, а то ожесточенные сторонники линукса меня мигом навечно забанят, хотя сами дома натихаря пользуют именно винду :)
    О, эти могут. Но у них проблемы с другими ip. А нельзя ли в одном скрипте информацию о всех ip охватить?
     
  7. cf

    cf Активный пользователь

    С нами с:
    28 окт 2007
    Сообщения:
    225
    Симпатии:
    0
    Адрес:
    St. Petersburg, Russia
    ты то ли правда дурак, то ли актер отличный.

    можно. если инфу будешь брать с разных страниц для разных ип. не так сложно.
     
  8. Штаны

    Штаны Guest

    Я вам поражаюсь! Я еще раз говорю, что я не программист, на программиста никогда не учился и основная работа с программированием никак не связана. Но программирование меня к себе тянет, поэтому по свободе этим занимаюсь, можно сказать что это типа хобби. Часто берусь за сложные вещи, но у меня за плечами полно белых пятен в элементарном, может поэтому меня неадекватно воспринимают...
    А есть где-то перечень, в котором указано какой сервис whois за какой диапазон IP отвечает? Я такого перечня не видел. Если вы мне его покажете, то скрипт тогда написать думаю будет не проблема даже для меня: суть его будет такая же, как и у того, что написан выше, только добавится несколько условий на проверку из какого диапазона IP и какой сервис whois за этот диапазон отвечает. P.S. И заметьте, никаких линуксов и консолей. Причем тут они? Я сначала расценил это как шутку, а теперь даже не знаю что и думать...
     
  9. Anonymous

    Anonymous Guest

    При том, то что я тебе показал, ЭТО ВЫВОД ИЗ МОЕЙ КОНСОЛИ.
     
  10. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Я может чего-то не понимаю, но разве нельзя сделать file_get_contents("http://www.nic.ru/whois/?query=$ip") и обработать полученный результат?

    Штаны
    Не воспринимают, а реагируют ;)

    Горбунов Олег
    Чел попросил помочь со скриптом, ты ему показал, как это делать в консоли... ничего не замечаешь?
     
  11. Anonymous

    Anonymous Guest

    Dagdamor, отлично!
    Помоги ему.
     
  12. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Дык вроде уже написал. Первый абзац. Тот проблемный IP ру-центр показывает как надо.
    P.S. Нашел кого цитировать :D
     
  13. Anonymous

    Anonymous Guest

    Мой вариант. Работает в PHP 4, 5 только под никсами.
    PHP:
    1. <?=`whois 66.249.66.84`?>
     
  14. Штаны

    Штаны Guest

    Справедливое замечание! Если эту проблему можно решить средствами php без привлечения консоли, зачем было ее вспоминать? Я наоборот, в целях безопасности, закрыл доступ для php к консоли. Плюс, если я выложу этот скрипт на хостинге, мне тоже доступ к консоли не дадут...
    Аааа, ну тогда это легче побороть :)
    Вот это в принципе и решение! Значит мы нашли, что есть whois сервис, который знает о всех IP - это nic.ru Теперь, если whois.ripe.net:43==false то идем с помощью file_get_contents() на nic.ru , получаем страничку, парсим, извлекаем нужное. Плохо конечно, что придется с нужными и лишние данные грузить, с этой стороны whois.ripe.net удобнее, но ничего, переживем.
     
  15. cf

    cf Активный пользователь

    С нами с:
    28 окт 2007
    Сообщения:
    225
    Симпатии:
    0
    Адрес:
    St. Petersburg, Russia
    блин, так заполняй пробелы.
    записывай какие ипы из проверенных не идут и ищи альтернативный хуиз для этого блока.

    боже, убейте меня....
     
  16. Штаны

    Штаны Guest

    Я этим как раз и занимаюсь.
    И это я делаю. Но видно у тебя самой, нормального whois-сервиса нет, поэтому твоя критика не имеет конструктивного характера.

    У меня в книге написано, что если whois-сервис whois.ripe.net:43 не может предоставить информацию по какому-то ip, то он в свем отрицательном ответе в поле ReferralServer: указывает, какой именно whois-сервер ответственен за этот диапазон ip и к которому следует обратиться. Если бы так оно и было, то мои поиски whois-сервера не велись бы наобум. Но загвоздка в том, что этот whois.ripe.net:43 обленился и поле ReferralServer: для ip= 66.249.66.84 не шлет.
     
  17. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    тема закрыта, т.к. вместо решения опять начинается галдежь.
    Штаны
    старик. будь внимательнее когда тебе что-нить советуют, а то опять тут все идиоты и н понимают твоей гениальности. поверь, без тебя тут никто скучать не будет.
     
Статус темы:
Закрыта.