Используя вывод «ipconfig / all», я могу получить то, что мне нужно, но мне нужен более надежный способ получения ip интерфейса (практически интерфейс должен быть идентифицирован по его имени) в случае, если ipconfig был поврежден или недоступен по любой причине.
2 ответа
Поскольку вы упомянули ipconfig, я предполагаю, что вы хотите сделать это в Windows. В Windows есть набор API-интерфейсов IP Helper, разработанный для получения и изменения сетевых настроек.
А вот простой пример: http: // msdn. microsoft.com/en-us/library/aa366298(VS.85).aspx
Я не уверен, что вы имеете в виду под «сервером и клиентом», но если вы ищете API, который сообщает вам IP-адрес (а), связанный с сетевыми интерфейсами локального компьютера, проверьте getifaddrs () (для Linux / MacOSX / POSIX) и GetAdaptersAddresses () (для Windows). Если вам нужен пример использования этих вызовов, взгляните на функцию GetNetworkInterfaceInfos () в этот файл.
(Если вы хотите получить IP-адрес клиента, подключенного к локальной машине, вызовите getpeername () в сокете, который связан с этим клиентским подключением)
Похожие вопросы
Новые вопросы
c++
C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который должен быть) скомпилирован с помощью компилятора C ++. Используйте тег для конкретной версии для вопросов, связанных с конкретной версией стандарта [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] или [C ++ 23] и т. Д. .