| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > IP Test |
| Автор: RapMan 30.6.2009, 17:27 |
| Всем привет, вопрос следующий: Как узнать или я к реальному сайту обращаюсь? то есть например можно записать в hosts: 127.0.0.1 google.com и уже к гуглу я не обращусь, а как программно можно узнать IP реальной? Заранее спасибо |
| Автор: Олег2005 30.6.2009, 18:58 |
Для этого есть функция gethostbyname(), которая по доменному имени возвращает его IP |
| Автор: RapMan 30.6.2009, 19:53 |
| знаю ее, а ты попробуй добавить в : windows\system32\driver\etc\hosts запись типа етого: 127.0.0.1 google.com и потом сделать gethostbyname( "google.com" ) и посмотреть какую IP тебе вернут... |
| Автор: Олег2005 30.6.2009, 21:27 |
| Вы не открыли Америку. Этот прием типа 127.0.0.1 google.com используют очень многие - есть файлы hosts по 600К http://www.mvps.org/winhelp2002/hosts.htm Так а в чем проблема то? Сами написали себе в hosts - сами и расхлебывайте |
| Автор: RapMan 30.6.2009, 21:36 |
| hosts не я пишу, мне нужно проверить или google.com имеет правильной IP-адресс. чтобы не обращаться к поддельному сайту. Вот это меня и интересует. |
| Автор: Artemon 1.7.2009, 09:07 |
| Так вы с начала проверяйте этот файл windows\system32\driver\etc\hosts на наличие в нем нужного сайта |
| Автор: RapMan 1.7.2009, 12:40 |
| думал насчет этого, но надеялся что есть другой способ. |
| Автор: Олег2005 1.7.2009, 14:44 |
| Если нужна проверка, делают так: сначала gethostbyname, получают IP Потом этот IP засовывают в gethostbyaddr() - и должны получить домен гугля или еще чего..... |
| Автор: RapMan 1.7.2009, 18:47 |
| неа, не работает такой способ... тоесть если записать в hosts: 127.0.0.1 google.com и потом сделать gethostbyname ( "google.com" ) и потом взять IP с полученных данных и засунуть в gethostbyaddr - то получиться одно и тоже, я получу google.com (даже если вручную вбить адрес 127.0.0.1 - результат тот же) етот вариант не работает |
| Автор: Олег2005 1.7.2009, 18:57 |
| Я вас - просто не понимаю. Вы пишите - в собственном компе - потому как первым делом gethostbyname лезет в hosts - заглушку на лупбэк - а потом хотите узнать истинный адрес...... Нет, НЕ ПОНИМАЮ. Уберите 127....из hosts и будет вам счастье....... |
| Автор: RapMan 1.7.2009, 19:46 |
| а если другая, не хорошая программа, добавила в хостс запись, вот я и хочу проверить... что тут еще понимать? мне как бы нужно сделать запрос к главному dns серверу чтобы получить то, что нужно |
| Автор: jonie 1.7.2009, 19:55 |
| "главному DNS ?!" это что за такой DNS? Ну сделайте запрос, в чем проблема? Сделайте например DNS запрос (свою библиотеку реализуйте на сокетах голых), хотя и это вам не особо поможет, подделать адрес можно всегда, для удостоверения что это именно тот хост есть сертификаты и принципы безопасной аутентификации... |
| Автор: RapMan 1.7.2009, 20:42 |
| jonie, если я не ошибаюсь их есть 13 или 16, етих "главных" DNS серверов... Ладно, понял что толку от етого - мало, все спасибо за помочь! |
| Автор: MAKCim 1.7.2009, 22:32 |
| не "главные", а корневые Добавлено через 30 секунд решение вашей "задачи" - собственная реализация DNS |
| Автор: RapMan 1.7.2009, 22:43 |
| Спасибо, ошибся Ладно, буду думать другими методами |
| Автор: jonie 2.7.2009, 11:42 |
| MAKCim я бы назвал реализацию DNS своими силами не решением, а затычкой.... я могу настроить свой DNS сервер так, как захочу я и т.п... в общем не метод аутентификации, в отличие от сертификатов например |