определить, какой IP-адрес был использован для открытия URL в c # - PullRequest
1 голос
/ 15 октября 2010

Скажем, у меня на компьютере 2 или более активных сетевых карт.Я использую приложение AC #, из которого я вызываю асинхронный сервис.я хочу иметь возможность определить, какой ipaddress я использовал при вызове этой службы.

например, мои два активных ip - 192.168.10.5 и 192.168.5.7, а ipaddress - 192.168.7.12.

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Вы можете попробовать это:

public static string GetExternalIP()
{
    try
    {
        using (WebClient client = new WebClient())
        {
             string ip = client.DownloadString("http://whatismyip.com/automation/n09230945.asp");
             return ip;
        }
    }
    catch (Exception) { return null; }
}

Код слегка переработан с http://www.hackcommunity.com/Thread-ASKING-FOR-REP-ROCKY-PART-2

0 голосов
/ 15 октября 2010

Хм.Я не думаю, что есть управляемое решение. GetBestInterface и / или GetBestRoute может показаться подходящим местом для запуска в WIn32 API (вероятно, GetBestRoute, по моим прочтениям).

Кроме того, из-зак капризам этой замечательной вещи, а именно к Интернету и динамической маршрутизации, к тому времени, как вы выработаете ответ, он, возможно, изменился.

Возможно, лучше всего предоставить службе списокIP-адреса, и пусть он использует тот, который работает.

Редактировать

Или вы можете использовать обратные вызовы WCF и заставить WCF делатьбольшая часть тяжелой работы (я сам не много времени проводил в самом WCF, не уверен, сколько работы он здесь сделает для вас)

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