2012-06-09 4 views
0

Я пишу программу на C++ в linux box (DHCP-клиент), которая зависит от возможности подключения к сети. Мне нужно прагматично проверить, что моя система имеет IP-адрес. Я знаю, что это общий и открытый вопрос, поэтому любое быстрое и грязное решение будет работать для меня, но в идеале я хотел бы проверить/прочитать системный файл, чтобы клиент DHCP получил IP-адрес от DHCP-сервера.Простой метод проверки IP-адреса был выпущен

Заранее спасибо.

+2

http://stackoverflow.com/questions/2021549/get-ip-address-in-c-language –

+0

Брендан, я только провел исследования на этом этапе. Габриэль, я знаком с этой нитью, THX, я надеюсь, что есть системный файл, который читал, чтобы получить нужную мне информацию. –

ответ

2

Просто попробуйте выполнить любую операцию, требующую IP-адрес, и она должна работать, если она есть. На ум приходит DNS-поиск.

0

Возможно, посмотрите источник ifconfig, так как он получает IP-адрес, если он назначен. Быстрое Трассирование предполагает, что это может быть IOCTL, такие как

ioctl(4, SIOCGIFADDR, {ifr_name="eth0", ifr_addr={AF_INET, inet_addr("<my ip>")}}) 

и Grep из/Proc/сетей для моего IP-адреса наводит на мысль, что, если вы знаете, как разобрать /proc/net/fib_trie вы могли бы получить его оттуда.