Как я могу определить IP-адреса локальной машины из Perl? - PullRequest
8 голосов
/ 01 декабря 2008

Существует ли чистый и независимый от ОС способ определения IP-адресов локальной машины из Perl?

Пока я нашел следующие решения:

  • анализ выходных данных ifconfig и ipconfig (жесткие, разные версии Windows имеют разные выходные данные ipconfig)

  • установить сетевое соединение с известным IP-адресом и проверить локальный IP-адрес сокета (не будет работать, если я не могу установить соединение и определю только один IP-адрес)

Есть лучшее предложение?

Ответы [ 11 ]

0 голосов
/ 01 декабря 2008

использовать WMI?

Пример извлечения IP-адресов (в Powershell, но довольно ясно, что происходит)

Пример доступа к WMI из Perl (не те же функции WMI, но снова процесс достаточно ясен)

РЕДАКТИРОВАТЬ: после поиска в поиске кода Google для Networkadapterconfiguration и языка "perl":

Пример выглядит примерно так, как вам нужно

РЕДАКТИРОВАТЬ2: На самом деле код OCS, кажется, содержит код для большинства платформ, чтобы сделать это, поэтому, хотя не может быть ни одного набора кода, который делает это, вы можете снова использовать их идеи. Это, однако, GPL.

Например, вот код Solaris . Другие биты охватывают BSD, Linux, MacOS ...

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