LINUX.ORG.RU

Ответ на: Re: IP адрес интерфейса от dilmah

Re: IP адрес интерфейса

хм, то что надо, единственное неудобно что для этого надо делать сокет

alex_custov ★★★★★ ()

Re: IP адрес интерфейса

> Есть информация, получаемая из HAL: имя сетевого интерфейса и его MAC. Можно ли (и как) узнать IP адрес, забинденый на этог интерфейс?

ifconfig $iface

Кстати, не забываем про алиасы, коих на интерфейс можно навесить множество.

gaa ★★ ()
Ответ на: Re: IP адрес интерфейса от gaa

Re: IP адрес интерфейса

> ifconfig $iface

Неправильно.

> Кстати, не забываем про алиасы, коих на интерфейс можно навесить множество.

А неправильно потому, что можно навесить множество адресов без всяких алиасов.

Поэтому правильно - /sbin/ip addr show dev $iface

INFOMAN ★★★★★ ()
Ответ на: Re: IP адрес интерфейса от Rastafarra

Re: IP адрес интерфейса

> getifaddrs

оно-то да, но на том варианте mipsel-gcc, который я пользую - этой радости нету :( так что хочется нечто более низкоуровневое

anonymous ()
Ответ на: Re: IP адрес интерфейса от anonymous

Re: IP адрес интерфейса

лично я делаю что-то вроде:

#include <sys/ioctl.h>
#include <net/if.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
  int i;
  int s = socket (PF_INET, SOCK_STREAM, 0);

  for (i=1;;i++)
  {
	struct ifreq ifr;
	struct sockaddr_in *sin = (struct sockaddr_in *) &ifr.ifr_addr;
	char *ip;

	ifr.ifr_ifindex = i;
	if (ioctl (s, SIOCGIFNAME, &ifr) < 0)
	  break;

	if (ioctl (s, SIOCGIFADDR, &ifr) < 0)
	  continue;

	ip = inet_ntoa (sin->sin_addr);
	printf ("name: %5s, ip: %15s\n", ifr.ifr_name, ip);
  }

  close (s);
  return 0;
}

Rastafarra ★★★★ ()
Ответ на: Re: IP адрес интерфейса от koTuk

Re: IP адрес интерфейса

> ifconfig парсит файл _PATH_PROCNET_DEV соответственно для linux это 
> будет /proc/net/dev

+ ioctl()

rei3er ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.