Используя вывод «ipconfig / all», я могу получить то, что мне нужно, но мне нужен более надежный способ получения ip интерфейса (практически интерфейс должен быть идентифицирован по его имени) в случае, если ipconfig был поврежден или недоступен по любой причине.

1
EBAG 13 Дек 2009 в 05:50

2 ответа

Лучший ответ

Поскольку вы упомянули ipconfig, я предполагаю, что вы хотите сделать это в Windows. В Windows есть набор API-интерфейсов IP Helper, разработанный для получения и изменения сетевых настроек.

А вот простой пример: http: // msdn. microsoft.com/en-us/library/aa366298(VS.85).aspx

2
Raymond 13 Дек 2009 в 06:44

Я не уверен, что вы имеете в виду под «сервером и клиентом», но если вы ищете API, который сообщает вам IP-адрес (а), связанный с сетевыми интерфейсами локального компьютера, проверьте getifaddrs () (для Linux / MacOSX / POSIX) и GetAdaptersAddresses () (для Windows). Если вам нужен пример использования этих вызовов, взгляните на функцию GetNetworkInterfaceInfos () в этот файл.

(Если вы хотите получить IP-адрес клиента, подключенного к локальной машине, вызовите getpeername () в сокете, который связан с этим клиентским подключением)

3
Jeremy Friesner 13 Дек 2009 в 06:29