Как получить * интернет * IP? - PullRequest
15 голосов
/ 05 февраля 2009

Представьте себе ситуацию, у меня есть компьютер с двумя сетевыми картами, одна подключена к Интернету, другая подключена к локальной сети, как я могу определить IP, который подключен к Интернету с помощью C #?

Ответы [ 15 ]

0 голосов
/ 07 декабря 2009

Используйте tracert. Первый прыжок всегда должен находиться в той же подсети, что и ваша сетевая плата.

пример из командной строки.

tracert google.com

первая строка - 10.0.0.254, а мой ник имеет ip 10.0.2.48. Тогда это простое упражнение по разбору вывода из tracert.

0 голосов
/ 08 марта 2009

Вы могли бы просто прочитать http://myip.dnsomatic.com/

Это надежный сервис OpenDNS, и я использую его для получения внешнего IP-адреса все время.

0 голосов
/ 05 февраля 2009

Попробуйте пропинговать www.google.com на обоих интерфейсах.

0 голосов
/ 05 февраля 2009

Для быстрого взлома (который наверняка сломается при сложных конфигурациях локальной сети или IPv6), получите список всех IP-адресов, имеющихся на текущем компьютере, и удалите все IP-адреса, соответствующие любому из следующих:

10.*
127.*          // <- Kudos to Brian for spotting the mistake
172.[16-31].*
192.168.*
0 голосов
/ 05 февраля 2009

Я уже ищу это, я нашел его в этом проекте codeplex http://www.codeplex.com/xedus. Это не работающая бесплатная P2P-программа, но есть класс, который использует правильный API для получения локальной карты, у которой есть Интернет ip

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...