Перечисление сетевых интерфейсов


Содержание

Как установить libghc-network-info-prof в Ubuntu / Debian

Установка:

Для установки libghc-network-info-prof в Ubuntu / Linux Mint / Debian, введите в Терминал :

Подробная информация о пакете:

Перечисление сетевых интерфейсов в Haskell; профилирующие библиотеки

Эта библиотека обеспечивает простой доступ только для чтения к сетевой конфигурации локального компьютера. В настоящее время он может получить список всех сетевых интерфейсов и их соответствующих IPv4, IPv6 и MAC-адресов.

Он был протестирован и, как известно, работает на Linux, Mac OS X и Windows XP.

Этот пакет содержит библиотеку профилирования, собранную для GHC.

Перечисление сетевых интерфейсов

Возникла задача получить список доступных интерфейсов в системе (linux. ядро 2.4.20). Вот кусочек кода:

int sd;
struct ifconf ifc;

if ( (sd = socket(AF_INET, SOCK_DGRAM, 0))Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

Оглавление

  • получить список доступных сетевых интерфейсов, Alexander S. Salieff, 18:34 , 27-Июн-05, (1)

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

>Здравствуйте.
>
>Возникла задача получить список доступных интерфейсов в системе (linux. ядро 2.4.20). Вот
>кусочек кода:
>
>int sd;
>struct ifconf ifc;
>
>if ( (sd = socket(AF_INET, SOCK_DGRAM, 0))
> perror(«socket() error!»);
> exit(1);
>>
>
>memset(&ifc, 0, sizeof ifc);
>
>ioctl(sd, SIOCGIFCONF, &ifc);
>
>close(sd);
>.
>
>Структура ifconf содержит указатель на массив структур ifreq, которая в свою очередь
>содержит поле ifr_name (то есть имя интерфейса).
>Но отлаживая в GDB вижу что указатель на ifreq NULL, в результате
>ничего не получаю.
>
>В чем проблема?
>Спасибо.

Короче делал я в свое время демку, которая вытаскивает всю инфу по интерфейсам, она точно пашет, смотри, юзай.

#undef KERNEL
#include
#include
#include
#include
#include
#include
#include
#include

#include
#include
#include
#include
#include

#define MAX_NUM_IFREQ (512)

extern int errno;

int
main(argc, argv)
int argc; char **argv;
<
struct ifconf Ifc;
struct ifreq IfcBuf[MAX_NUM_IFREQ];
struct ifreq *pIfr;
int num_ifreq;
int i;
int fd;
struct sockaddr_in addrtmp;
unsigned char mac[10]=<0>;

Ifc.ifc_len = sizeof(IfcBuf);
Ifc.ifc_buf = (char *) IfcBuf;

if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) >>===—\n», i);
if (pIfr->ifr_addr.sa_family != AF_INET)
printf(«\n[%d] Is not AF_INET interface! Next information may be incorrect. \n», i);
printf(«\n[%d] Name = %s\n», i, pIfr->ifr_name);

if ( ioctl(fd,SIOCGIFHWADDR, pIfr) ifr_hwaddr.sa_data),sizeof(struct sockaddr));
printf(«\n[%d] MAC = %02X:%02X:%02X:%02X:%02X:%02X\n»,
i,mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
>

if ( ioctl(fd, SIOCGIFADDR, pIfr) ifr_addr),sizeof(addrtmp));
printf(«\n[%d] Address = %s\n»,i, inet_ntoa(addrtmp.sin_addr));
>

if ( ioctl(fd, SIOCGIFBRDADDR, pIfr) ifr_broadaddr),sizeof(addrtmp));
printf(«\n[%d] BroadAddress = %s\n»,i, inet_ntoa(addrtmp.sin_addr));
>

if ( ioctl(fd, SIOCGIFNETMASK, pIfr) ifr_addr),sizeof(addrtmp));
printf(«\n[%d] MaskAddress = %s\n»,i, inet_ntoa(addrtmp.sin_addr));
>

if ( ioctl(fd, SIOCGIFFLAGS, pIfr) ifr_flags&0x1?»ON»:»OFF»);
printf(«\n[%d] IFF_BROADCAST=%s\n»,i, pIfr->ifr_flags&0x2?»ON»:»OFF»);
printf(«\n[%d] IFF_DEBUG=%s\n»,i, pIfr->ifr_flags&0x4?»ON»:»OFF»);
printf(«\n[%d] IFF_LOOPBACK=%s\n»,i, pIfr->ifr_flags&0x8?»ON»:»OFF»);
printf(«\n[%d] IFF_P2P=%s\n»,i, pIfr->ifr_flags&0x10?»ON»:»OFF»);
printf(«\n[%d] IFF_NOTRAILERS=%s\n»,i, pIfr->ifr_flags&0x20?»ON»:»OFF»);
printf(«\n[%d] IFF_RUNNING=%s\n»,i, pIfr->ifr_flags&0x40?»ON»:»OFF»);
printf(«\n[%d] IFF_NOARP=%s\n»,i, pIfr->ifr_flags&0x80?»ON»:»OFF»);
>
>
fflush(stdout);
close(fd);
return 0;
>

Как посмотреть список сетевых интерфейсов в debian?

Как посмотреть список сетевых интерфейсов в debian?

Re: Как посмотреть список сетевых интерфейсов в debian?

Re: Как посмотреть список сетевых интерфейсов в debian?

man ifconfig, man ip

Re: Как посмотреть список сетевых интерфейсов в debian?

В ифконфиге светится кроме лупбэка только то, что я прописал в /etc/network/interfaces.
Потом, когда делаю рестарт он выдает такую хрень ADDRCONF(NETDEV_UP): eth0: link is not ready.

Вот я и подумал а реально ли в системе есть устройство eth0.


Re: Как посмотреть список сетевых интерфейсов в debian?

в dmesg посмотрите

Re: Как посмотреть список сетевых интерфейсов в debian?

Как перечислить все доступные сетевые интерфейсы?

Как перечислить все сетевые интерфейсы, доступные на данный момент на компьютере (включая виртуальные, не связанные, loopback и т.д.)?

Мне нужно знать их IP4/6, Mask, Gateway, DNS, WINS и т.д.

Система: Windows 2000 и выше (включая Win7)

Посмотрите http://www.codeproject.com/KB/IP/netcfg.aspx. Это гигантский пример того, что вы хотите сделать.

Похоже, вам нужна комбинация нескольких различных функций.

Чтобы получить список адаптеров с их IPv4-адресами/масками, связанными WINS-серверами и DNS-серверами, вы можете использовать GetAdaptersInfo . Чтобы получить адреса IPv6, вы можете использовать GetAdaptersAddresses .

В зависимости от того, что включено в ваш «и т.д.», вам также могут понадобиться GetIfTable и GetIfEntry . GetIfTable получает список сетевых адаптеров. GetIfEntry получает информацию о каждом из них. Они извлекают такие вещи, как объем данных, которые были переданы/извлечены по определенному интерфейсу. Там также есть GetIfTable2 / GetIfEntry2 , которые предназначены только для Vista и новее, которые получают дополнительную информацию.

Если память обслуживается, GetIfTable / GetIfEntry перечислит все интерфейсы в аппарате. GetAdaptersInfo работает только с «настоящими» адаптерами.

Форум русскоязычного сообщества Ubuntu

Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как получить список зарегистрированных сетевых карт? (Прочитано 32913 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Страница сгенерирована за 0.072 секунд. Запросов: 22.

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Настройка сети в Debian 9

В этой статье я опишу простую настройку сети для сервера под управлением ОС Debian 9 (Stretch). Эта статья является переработкой моей более ранней статьи «Настройка сети в Debian». Она была справедлива для версий старше Debian 9. В Debian 9 многое изменилось в настройке и диагностике сети. Те, кто перешёл сюда со старой статьи, уже знают, в чём дело. Но я повторюсь для тех, кто сразу попал на эту статью.
Во-первых, в Debian 9 изменилась система именования сетевых интерфейсов. Если раньше, например для Ethernet, имена интерфейсов были следующими: eth0, eth1, eth2 и т. д. То сейчас используются номера интерфейсов в BIOS, а также номера слотов PCI. Это называется stateless persistent network interface names (имена постоянных сетевых интерфейсов без отслеживания состояния) Т. е. имя может быть enp0s3, или ens30, или wlp3s0 для wi fi. При желании можно переименовать сетевые интерфейсы, вернуться к прежней системе, но это материал для отдельной статьи.

Во-вторых, раньше для настройки и диагностики сети использовались утилиты из пакета net-tools. При установке Debian этот пакет устанавливался по умолчанию вместе с системой. Теперь он просто присутствует в репозиториях и вместо него по умолчанию устанавливается пакет iproute2, При желании можно установить старый пакет (net-tools) и пользоваться прежними утилитами. Но мы этого делать не будем, и в этой статье будет описано использование программ из нового пакета.

В-третьих, изменилась система инициализации – Debian перешёл на systemd. Это значит, что сервисы надо перезапускать по-другому.

И так начнём. Обычно первичная настройка сети происходит ещё на этапе установки. Об этом можно прочесть в моей статье «Установка Debian на сервер». Если по какой-то причине это не было сделано при установке, то мы с вами попытаемся решить проблемы с сетью и настроить наш сервер.

Установка сетевой карты

В первую очередь нужно убедиться, что сетевые карты установлены, а если они интегрированы в материнскую плату, то включены в BIOSе, а так же подключены сетевые кабели. Проверим, видит ли система наши сетевые карты (интерфейсы). Для этого дадим следующую команду:

$ sudo ip link show

Второй вариант команды написан для тех, кто при установке запретил вход суперпользователя. Далее в статье я не буду дублировать команды, просто запомните: если в начале кода есть значок #, значит команда выполняется от имени суперпользователя. Те, кто запретил вход суперпользователя в систему выполняют её с помощью sudo.

Видим на экране примерно следующее:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3:
mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000

link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ff

Это список всех установленных интерфейсов. Первый блок описывает интерфейс локальной петли (link/loopback), а второй описывает интерфейс Ethernet (link/ether) с именем enp0s3.

Информация об интерфейсе содержит: имя интерфейса, установленные флаги состояния, MTU, тип и размер очереди фреймов, тип соединения, MAC-адрес, широковещательный адрес.

Некоторые флаги состояния (подробнее в man netdevice(7)):

  • LOOPBACK — интерфейс является локальным и не может взаимодействовать с другими узлами в сети;
  • UP — устройство подключено;
  • DOWN — устройство отключено;
  • NO-CARRIER — нет связи (не подключен кабель).
  • BROADCAST — устройство способно отправлять широковещательные фреймы;
  • POINTTOPOINT — соединение типа «точка-точка»
  • PROMISC — устройство находится в режиме «прослушивания» и принимает все фреймы.
  • NOARP — отключена поддержка разрешения имен сетевого уровня.
  • ALLMULTI — устройство принимает все групповые пакеты.

Убеждаемся что, система видит сетевые интерфейсы. Если на этом этапе вы получаете пустые строки или сообщения об ошибках, значит оборудование: либо не подключено, либо не исправно, либо не совместимо. Подразумевается, что при установке Debian использовался специальный набор проприетарных драйверов. В первом случае ещё раз проверяем правильность включения сетевой карты, поддержку BIOS и т. д. Во втором и третьем случае производим замену оборудования. Если проблема возникла после сборки своего ядра — проверяем ядро. Данная информация выходит за рамки этой статьи, но в последующих статьях мы с вами рассмотрим сборку, проверку и настройку ядра.


Настройка статического IP-адреса

И так, наше оборудование функционирует нормально. Нам нужно настроить статический IP-адрес со следующими параметрами: IP-адрес 192.168.123.254, маска подсети 255.255.255.0, основной шлюз 192.168.123.1. Посмотрим вывод команды ip addr:

Если всё было настроено правильно ещё при установке системы, мы увидим следующее:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.123.254/24 brd 192.168.123.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe90:4538/64 scope link
valid_lft forever preferred_lft forever

Некоторая часть информации нам уже знакома. Смотрим информацию об интерфейсе Ethernet (второй в списке). Первое, что мы видим — тип адреса: inet – адрес IPv4, inet6 – адрес IPv6. Мы настраиваем сеть по протоколу IP четвёртой версии, поэтому смотрим на третью строку. Далее следует ip-адрес (192.168.123.254) с указанием маски подсети в битовом виде (/24). Затем идёт широковещательный (brd) адрес (192.168.123.255) подсети. Завершается строка областью видимости (scope global — действителен везде, scope link — только для данного устройства, scope host — для данного узла) и именем интерфейса (enp0s3).

Если настройка сети не удалась при установке, то в лучшем случае мы увидим настроенным только локальный интерфейс:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

А то и не увидим никакой информации. В общих случаях, для проверки или устранения неисправностей можно настроить сетевые интерфейсы с помощью команды ip. Об этом будет написано ниже в этой же статье. А пока приступим редактированию файлов конфигураций. Перед редактированием сетевых конфигурационных файлов следует остановить сетевой интерфейс командой ifdown. Делается это следующим образом:

Но в нашем случае интерфейс enp0s3 ещё не сконфигурирован и мы получим сообщение об ошибке:

interface enp0s3 not configured

Тогда, для начала, проверяем существование файла /etc/network/interfaces. Если он не существует, то создаём его, если существует, то редактируем текстовым редактором:

Для сервера с одним сетевым интерфейсом у нас должно получиться следующее:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo enp0s3
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.123.254
netmask 255.255.255.0
gateway 192.168.123.1
dns-nameservers 213.177.96.1 213.177.97.1

Символ # в тексте этого файла обозначает комментарии. В них написано, что файл interfaces описывает доступные системе сетевые интерфейсы и то, как их активировать. Для получения большей информации следует посмотреть руководство interfaces(5).

Остановимся на некоторых моментах:

  • auto – через пробел перечисляются имена сетевых интерфейсов, которые будут включаться при запуске операционной системы
  • allow-hotplugin – нужен, если возможна горячая замена сетевой карты, например, если она подключена через USB.
  • iface – ключевое слово, описывающее интерфейс. После него через пробел пишется имя этого интерфейса.
  • inet – тип ip адреса. inet – адрес IPv4
  • static – указывает на статический адрес
  • address – ip адрес
  • netmask – маска подсети
  • gateway – шлюз по умолчанию

В последней строке описания интерфейса идёт перечисление через пробел dns-серверов, у вас там, естественно должны быть адреса dns-серверов вашего провайдера или вашей сети. Сохраняем изменения (Ctr+O, затем Enter) и редактируем файл /etc/resolv.conf:

Он опять же должен содержать адреса dns-серверов вашего провайдера или вашей сети.

nameserver 213.177.96.1
nameserver 213.177.97.1

Сохраняем изменения и активируем сетевой интерфейс:

Если ошиблись при редактировании файлов, то тщательно проверяем и исправляем ошибки. Если всё заполнено правильно, перезапускаем сетевые службы:

Это по-старому. По-новому (с systemd) будет так:

# systemctl restart networking.service

Проверяем что у нас получилось, использую команду ip addr для своего интерфейса:

# ip addr show enp0s3

2: enp0s3:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.123.254/24 brd 192.168.123.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe90:4538/64 scope link
valid_lft forever preferred_lft forever

Проверяем работу сети. Сначала проверяем локальный интерфейс (параметр -с 4 подразумевает отправку четырех пакетов):

$ ping 127.0.0.1 -с 4

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.036 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.045 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.044 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.043 ms

— 127.0.0.1 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3078ms
rtt min/avg/max/mdev = 0.036/0.042/0.045/0.003 ms

Затем проверяем сетевой интерфейс («пингуем» сами себя):


$ ping 192.168.123.254 -с 4

PING 192.168.123.254 (192.168.123.254) 56(84) bytes of data.
64 bytes from 192.168.123.254: icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from 192.168.123.254: icmp_seq=2 ttl=64 time=0.044 ms
64 bytes from 192.168.123.254: icmp_seq=3 ttl=64 time=0.046 ms
64 bytes from 192.168.123.254: icmp_seq=4 ttl=64 time=0.045 ms

— 192.168.123.254 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3070ms
rtt min/avg/max/mdev = 0.027/0.040/0.046/0.010 ms

Теперь основной шлюз:

$ ping 192.168.123.1 -с 4

PING 192.168.123.1 (192.168.123.1) 56(84) bytes of data.
64 bytes from 192.168.123.1: icmp_seq=1 ttl=64 time=5.60 ms
64 bytes from 192.168.123.1: icmp_seq=2 ttl=64 time=0.986 ms
64 bytes from 192.168.123.1: icmp_seq=3 ttl=64 time=0.966 ms
64 bytes from 192.168.123.1: icmp_seq=4 ttl=64 time=0.975 ms

— 192.168.123.1 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.966/2.132/5.602/2.003 ms

И какой-нибудь удалённый хост по имени:

PING www.aitishnik.ru (195.208.1.108) 56(84) bytes of data.
64 bytes from std-carp8-http.nic.ru (195.208.1.108): icmp_seq=1 ttl=56 time=26.1 ms
64 bytes from std-carp8-http.nic.ru (195.208.1.108): icmp_seq=2 ttl=56 time=26.2 ms
64 bytes from std-carp8-http.nic.ru (195.208.1.108): icmp_seq=3 ttl=56 time=25.3 ms

— www.aitishnik.ru ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 25.384/25.940/26.260/0.394 ms

На этом настройка статического IP-адреса для сервера с одним сетевым интерфейсом закончена.

Настройка динамического IP-адреса

В некоторых случаях сервер может получать динамический IP-адрес. Чаще всего это зарезервированный адрес или псевдо статический. Т. е. на DHCP-сервере производится привязка определённого mac-адреса к определённому ip-адресу (об этом читайте в статье «Настройка DHCP в Debian»). Такая ситуация может встретиться и в локальной сети, но чаще всего она встречается тогда, когда провайдер выдает ip-адреса динамически. В этом случае файл /etc/network/interfaces выглядит следующим образом:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5)

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp

После сохранения файла перезапустим сетевой сервис:

# systemctl restart networking.service

И посмотрим, что получилось:

# ip addr show enp0s3

2: enp0s3:
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.123.35/24 brd 192.168.123.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe90:4538/64 scope link
valid_lft forever preferred_lft forever

DHCP сервер моей сети выделил компьютеру ip адрес 192.168.123.35

Команда ip

В случаях поиска неисправностей, для отладки и т.д. сетевые интерфейсы можно настроить с помощью команды ip. Но надо помнить, что эти настройки будут действовать только до перезагрузки операционной системы! Получить информацию по сетевым интерфейсам:

Получить информацию по ip адресам:

Удалить ip адрес:

# ip address del 192.168.123.35/24 dev enp0s3

Назначить ip адрес вместо удалённого:

# ip address add 192.168.123.254/24 brd + dev enp0s3

Получить информацию по маршрутам:

Добавить основной шлюз:

# ip route add default via 192.168.123.1

Добавить маршрут в сеть 192.168.111.0/24 через шлюз 192.168.123.2

# ip route add 192.168.111.0/24 via 192.168.123.2

Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ


RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта

Боковая панель

Навигация

Линкшэринг

Добавить новую страницу

Вы не можете добавлять страницы

Содержание

Справка по настройке /etc/network/interfaces

Название

/etc/network/interfaces – настройка сетевого интерфейса для ifup и ifdown.

Описание

/etc/network/interfaces содержит информацию по настройке сетевого интерфейса для команд ifup(8) и ifdown(8).
Здесь вы указываете, каким образом ваша система подключена к сети.

Строки, которые начинаются с символа «#» игнорируются. Обратите внимание, что комментарии с явным указанием конца строки не поддерживаются, комментарии должны занимать одну строку.

Строка может быть перенесена на новую строку для удобства чтения, для этого в конце строки необходим символ «\».

Файл состоит из нуля или более строф «iface», «mapping», «auto» и «allow-». Ниже указаны примеры.

auto lo eth0
allow-hotplug eth1
iface lo inet loopback
mapping eth0
script /usr/local/sbin/map-scheme
map HOME eth0-home
map WORK eth0-work
iface eth0-home inet static
address 192.168.1.1
netmask 255.255.255.0
up flush-mail
iface eth0-work inet dhcp
iface eth1 inet dhcp

Строки начинающиеся со слова «auto» используются для идентификации физических интерфейсов при их подьеме в время запуска ifup с опцией -a. (Эта опция используется сценариями загрузки системы.) Имена физических интерфейсов должны следовать за словом «auto» в той же строке. Может быть несколько строф «auto». ifup поднимет названные интерфейсы в порядке их перечисления.

Строки, начинающиеся с «allow-» используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами. Это может быть сделано, например, с использованием команды «ifup –allow=hotplug eth0 eth1″, которая будет поднимать только eth0 или eth1, если они перечислены в строке «allow-hotplug». Учтите, что «allow-auto» и «auto» – синонимы.

Строфы, начинающиеся со слова «mapping», используются определения, какой логический интерфейс соответствует физическому интерфейсу, который будет поднят. Первая строка строфы отображения (mapping) состоит из слова «mapping» с последующим шаблоном, соответствующим синтаксису глобальной оболочки. Каждая такая строфа отображения должна содержать определение сценария. Именованный сцеанрий запускается с именем физического интерфейса в качестве аргумента и с передачей на его стандартный вход всех следующих «map» строк (без ведущей «map») в строфе. Сценарий перед завершением должен вывести строку на стандартный вывод. Обратитесь к /usr/share/doc/ifupdown/examples за примерами того, что должен вывести сценарий.

Отображение имени состоит из поиска необходимого шаблона отображения и запуска сценария, соответствующего первому совпадению; сценарий выводит имя, в которое будет отображено исходное имя.

ifup, в качестве его первого обязательного аргумента, обычно передается имя физического интерфейса. ifup так же использует это имя как начальное логическое имя интерфейса, если оно не сопровождается суффиксом вида =LOGICAL, в этом же случае ifup выбирает LOGICAL в качестве начального логического имени интерфейса. Затем это название отображения, возможно более одного раза в соответствии с последующими спецификациями отображения, до тех пор пока больше не останется доступных отображений. Если окончательное имя – это имя некого определенного логического интерфейса, тогда ifup попытается поднять физический интерфейс как этот логический интерфейс. В противном случае ifup закончит работу с ошибкой.

Строфы, определяющие логические интерфейсы, начинаются со строки, содержащей слово «iface», которая сопровождается именем логического интерфейса. В простых конфигурациях, без строф отображения, это имя просто должно быть именем физического интерфейса, к которому будут применены настройки. (Сценарий отображения по умолчанию действует подобно команде echo.) За именем интерфейса следует название семейства адресов, которое использует интерфейс. Это может быть «inet» для сетей TCP/IP, но имеется так же поддержка сетей IPX («ipx»), и сетей IPv6 («inet6″). За ним следует название метода, используемого для настройки интерфейса.

Дополнительные опции могут быть заданы в последующих строках строфы. Доступность опций зависит от семейства и метода, как описано ниже. Дополнительные опции могут предоставляться другими пакетами Debian. Например, пакет wireless-tools предоставляет несколько опций, начинающихся с «wireless-», которые можно использовать для настройки интерфейса с помощью iwconfig(8). (Обратитесь к wireless(7) за подробностями.) Опции обычно содержат отступ для ясности (как в примере выше) но это не обязательно.

Опции iface

Следующие «командные» опции доступны для любойго семейства и метода. Каждая из этих опций может быть задана несколько раз в одной строфе, в этом случае команды исполняются в том порядке, в котором они появляются в строфе. (Вы можете убедиться, что команда никогда не завершается с ошибкой, добавив суффикс «|| true». )

pre-up команда

Запустить команду до поднятия интерфейса. Если команда завершается с ошибкой, тогда ifup не отмечает интерфейс как настроенный, выводит сообщение об ошибке и завершается со статусом 0. В будущем это поведение может измениться.

up команда | post-up команда

Запустить команду после поднятия интерфейса. Если команда завершается с ошибкой, тогда ifup не отмечает интерфейс как настроенный (даже если он в действительности настроен), выводит сообщение об ошибке и завершается со статусом 0. В будущем это поведение может измениться.

down команда | pre-down команда

Запустить команду перед отключением интерфейса. Если команда завершается с ошибкой, тогда ifdown помечает интерфейс как не настроенный (даже если на самом деле его настройки не были сброшены) и завершается со статусом 0. В будущем это поведение может измениться.

post-down команда


Запустить команду после отключения интерфейса. Если команда завершается с ошибкой, ifdown помечает интерфейс как не настроенный и завершается со статусом 0. В будущем это поведение может измениться.

Для каждой из вышеперечисленных опций существует каталог /etc/network/if- .d/, сценарии в котором запускаются (без аргументов) с помощью run-parts(8) после обработки самих опций.

Все эти команды имеют доступ к следующим переменным окружения.

IFACE – Физическое имя обрабатываемого интерфейса.
LOGICAL – Логическое имя обрабатываемого интерфейса.
ADDRFAM – Семейство адресов интерфейса.
METHOD – Метод интерфейса (например, static).
MODE – start – если команда запущена из ifup, stop – если команда запущена из ifdown.
PHASE – Как и MODE, но с большей точностью, при которой различаются фазы pre-up, post-up, pre-down и post-down.
VERBOSITY – Указывает, что используется опция –verbose; установлена в 1 если это так, или 0 – если нет.
PATH – Путь поиска команды: usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Дополнительно, все опции, заданные в строфе определения интерфейса, экспортируются в переменные окружения. Имя переменной состоит из символов в верхнем регистре, дополненное символами «IF_» слева, с дефисами, преобразованными в знаки подчеркивания и с отброшенными не алфавитно-цифровыми символами.

INET ADDRESS FAMILY

Этот раздел описывает методы, доступные для семейства адресов inet.

Метод loopback

Этот метод может использоваться для описания интерфейса обратной петли IPv4.

Метод static

Этот метод может использоваться для описания Ethernet-интерфейсов со статически выделенными IPv4 адресами.
Опции:
address адрес – Необходимый адрес (четыре числа, разделённых точками).
netmask маска_сети – Необходимая маска сети (четыре числа, разделённых точками).
broadcast широковещательный_адрес – Широковещательный адрес (четыре числа, разделённых точками).
network адрес_сети – Необходимый адрес сети (четыре числа, разделённых точками) для ядер 2.0.x.
metric метрика – Метрика маршрутизации для шлюза по умолчанию (целое число).
gateway адрес – Шлюз по умолчанию (четыре числа, разделённых точками).
pointopoint адрес – Адрес удалённой точки (четыре числа, разделённых точками). Обратите внимание на написание «point-to».
media тип – Тип носителя, зависящий от драйвера.
hwaddress класс адрес – Аппаратный (mac) адрес. Класс – это одно из следующих значений: ether, ax25, ARCnet или netrom. Адрес зависит от выбранного класса.
mtu размер – Размер MTU.

Метод manual

Этот метод может использоваться для описания интерфейсов, для которых нет настроек применяемых по умолчанию. Такие интерфейсы могут настраиваться вручную, подразумеваемыми командами up и down, или сценариями из каталогов /etc/network/if-*.d.

Метод dhcp

Этот метод может использоваться для получения адреса через DHCP любым из перечисленных инструментов: dhclient, pump, udhcpc, dhcpcd. (Они были перечислены в порядке их приоритета.) Если у вас сложная конфигурация DHCP, вам следует знать, что некоторые из клиентов используют собственные настроечные файлы и не получают настроечную информацию посредством ifup. Опции:
hostname имя_узла – Запрашиваемое имя узла (pump, dhcpcd, udhcpc).
leasehours часы_аренды – Предпочитаемое время аренды в часах (pump).
leasetime время_аренды – Предпочитаемое время аренды в секундах (dhcpcd).
vendor производитель – Идентификатор класса производителя (dhcpcd).
client клиент – Индетификатор клиента (dhcpcd, udhcpc).
hwaddress класс адрес – Аппаратный адрес. Класс – это одно из следующих значений: ether, ax25, ARCnet или netrom. Адрес зависит от выбранного класса.

Метод bootp

Метод может использоваться для получения адреса через bootp.
Опции:
bootfile файл – Сообщает серверу какой файл использовать в качестве загрузочного.
server адрес – Использовать указанный IP адрес для связи с сервером.
hwaddr addr – Использовать аппаратный адрес addr вместо реального.

Метод ppp

Этот метод использует pon/poff для настройки интерфейса PPP. Обратитесь к этим командам за подробностями.
Опции – provider имя – Использовать имя в качестве провайдера (из /etc/ppp/peers).

Метод wvdial

Этот метод использует wvdial для настройки интерфейса PPP. Обратитесь к этой команде за подробностями.
Опции:
provider имя – Использовать имя в качестве провайдера (из /etc/ppp/peers).

Семейство адресов IPX

Этот раздел описывает методы, доступные для семейства адресов ipx.

Метод static

Этот метод может использоваться для настройки интерфейса IPX. Он требует команду ipx_interface.
Опции:
frame тип – Тип используемых кадров Ethernet (например 802.2).
netnum идентификатор – Номер сети.

Метод dynamic

Этот метод может использоваться для динамической настройки интерфейса IPX.
Опции:
frame тип – Тип используемых кадров Ethernet (например 802.2).

Семейство адресов INET6

Этот раздел описывает методы, доступные для семейства адресов inet6.

Метод loopback

Этот метод может использоваться для описания интерфейса обратной петли IPv6.

Метод static

Этот метод может использоваться для описания интерфейсов со статически назначенными IPv6 адресами.
Опции:
address адрес – Необходимый адрес (разделенный двоеточиями).
netmask маска_сети – Необходимая сетевая маска (количество бит, например 64).
gateway адрес – Шлюз по умолчанию (разделенный двоеточиями).
media тип – Тип носителя, зависящий от драйвера.
hwaddress класс адрес – Аппаратный адрес. Класс – это одно из следующих значений: ether, ax25, ARCnet или netrom. Адрес зависит от выбранного класса.
mtu размер – Размер MTU.

Метод manual

Этот метод может использоваться для описания интерфейсов, для которых нет настроек применяемых по умолчанию. Такие интерфейсы могут настраиваться вручную, подразумеваемыми командами up и down, или сценариями из каталогов /etc/network/if-*.d.


Метод v4tunnel

Этот метод может использоваться для настройки туннеля IPv6-over-IPv4. Для него необходима команда ip из пакета iproute.
Опции:
address адрес – Адрес (разделенный двоеточиями).
netmask маска_сети – Маска сети (количество бит, например 64).
endpoint адрес – Необходимый адрес удалённой точки туннеля (IPv4 – четвёрка чисел, разделённых точками).
local адрес – Адрес локальной точки (IPv4 – четвёрка чисел, разделённых точками).
gateway адрес – Шлюз по умолчанию (разделенный двоеточиями).
ttl время – Настройка TTL.

Известные ошибки/ограничения

ifup и ifdown работают с так называемыми «физическими» именами интерфейсов. Эти имена обозначены оборудованию ядром. К несчастью может случиться так, что ядро каждый раз будет назначать разные имена физических интерфейсов одному и тому же оборудованию; например, тот что называется «eth0″ после перезагрузки может называться «eth1″ или наоборот. Это создаёт проблему, если вы хотите настроить интерфейсы соответствующим образом. Для избежания подобного следует использовать сцеанрии отображения, которые выбирают логические имена интерфейсов в соответствии со свойствами аппаратного интерфейса. Смотри сценарий get-mac-address.sh из каталога примеров, который является примером такого сценария отображения. Смотри также Debian bug #101728.

В настоящее время невозможно разделить /etc/network/interfaces на различные файлы. Возможность, которая сделает это возможным, это некая разновидность директивы включения. В текущей программе ifupdown это не возможно. За более подробной информацией обратитесь Debian bug #159884.

Автор

Комплекс программ ifupdown был написан Энтони Таунсом (Anthony Towns) . Это руководство предоставлено Джо Хессом (Joey Hess) .

Перечисление устройств по сети Enumerate devices over a network

Важные API Important APIs

Помимо обнаружения локально подключенных устройств вы можете использовать интерфейсы API Windows.Devices.Enumeration для перечисления устройств по беспроводным и сетевым протоколам. In addition to discovering locally connected devices, you can use the Windows.Devices.Enumeration APIs to enumerate devices over wireless and networked protocols.

Перечисление устройств по сетевым или беспроводным протоколам Enumerating devices over networked or wireless protocols

Иногда вам необходимо перечислить устройства, которые не подключены локально и могут быть обнаружены только по протоколам проводной или беспроводной сети. Sometimes you need to enumerate devices that are not locally connected and can only be discovered over a wireless or networking protocols. Для этого у API Windows.Devices.Enumeration есть три различных типа объектов устройства: AssociationEndpoint (AEP), AssociationEndpointContainer (контейнер AEP) и AssociationEndpointService (служба AEP). In order to do so, the Windows.Devices.Enumeration APIs have three different kinds of device objects: the AssociationEndpoint (AEP), the AssociationEndpointContainer (AEP Container), and the AssociationEndpointService (AEP Service). Вместе данные типы называют объектами AEP. As a group these are referred to as AEPs or AEP objects.

Некоторые API устройства предоставляют строку средства выбора, которую можно использовать для перечисления доступных объектов AEP. Some device APIs provide a selector string that you can use to enumerate through the available AEP objects. К ним могут относиться связанные и не связанные с системой устройства. This could include both devices that are paired and are not paired with the system. Для некоторых устройств связывание может не потребоваться. Some of the devices might not require pairing. Эти API устройств могут попытаться связать устройство, если связывание необходимо для взаимодействия с ним. Those device APIs may attempt to pair the device if pairing it is necessary before interacting with it. Примером API, которые используют этот шаблон, служит Wi-Fi Direct. Wi-Fi Direct is an example of APIs that follow this pattern. Если эти API устройства не связывают устройство автоматически, можно выполнить сопряжение с помощью объекта DeviceInformationPairing, доступного в DeviceInformation.Pairing. If those device APIs do not automatically pair the device, you can pair it using the DeviceInformationPairing object available from DeviceInformation.Pairing.

Однако в некоторых случаях может потребоваться вручную обнаружить устройства без заданной строки средства выбора. However, there may be cases where you want to manually discover devices on your own without using a pre-defined selector string. Например, вы можете просто собрать информацию об устройствах AEP без взаимодействия с ними или получить больше объектов AEP, чем можно обнаружить с помощью заданной строки средства выбора. For example, you may just need to gather information about AEP devices without interacting with them or you may want to find more AEP objects than will be discovered with the pre-defined selector string. В этом случае вы сами создадите строку средства выбора и используете ее, следуя инструкциям в разделе Создание средства выбора устройств. In this case, you will build your own selector string and use it following the instructions under Build a device selector.

При создании собственного средства выбора устройств настоятельно рекомендуется ограничить область перечисления протоколами, которые вас интересуют. When you build your own selector, it is strongly recommended that you limit your scope of enumeration to the protocols that you are interested in. Например, если вас интересуют UPnP-устройства, нет необходимости выполнять поиск устройств Wi-Fi Direct с помощью радио Wi-Fi. For example, you don’t want to have the Wi-Fi radio search for Wi-Fi Direct devices if you are particularly interested in UPnP devices. Windows присвоила удостоверение каждому протоколу. Их можно использовать при определении области перечисления. Windows has defined an identity for each protocol that you can use to scope your enumeration. В таблице ниже приведены типы и коды протоколов. The following table lists the protocol types and identifiers.

1. «получить список доступных сетевых интерфейсов»
Сообщение от Alexander S. Salieff on 27-Июн-05, 18:34 (MSK)
Протокол или тип сетевого устройства Protocol or network device type Id Id
UPnP (включая DIAL и DLNA) UPnP (including DIAL and DLNA)
Web Services on Devices (WSD) Web services on devices (WSD)
Wi-Fi Direct Wi-Fi Direct
Обнаружение служб DNS (DNS-SD) DNS service discovery (DNS-SD)
POS-терминал Point of service
Сетевые принтеры (принтеры Active Directory) Network printers (active directory printers)
Windows Connect Now (WCN) Windows connect now (WNC)
Док-станция WiGig WiGig docks
Подготовка Wi-Fi для принтеров HP Wi-Fi provisioning for HP printers
Bluetooth Bluetooth
Bluetooth с низким энергопотреблением Bluetooth LE
Камера сети Network Camera

Примеры AQS AQS examples

У каждого типа AEP есть свойство, которое можно использовать, чтобы ограничить перечисление определенным протоколом. Each AEP kind has a property you can use to constrain your enumeration to a specific protocol. Не забудьте, что в AQS-фильтре можно использовать оператор OR, чтобы сгруппировать несколько протоколов. Keep in mind you can use the OR operator in an AQS filter to combine multiple protocols. Ниже приведено несколько примеров строк AQS-фильтра, показывающих, как запросить наличие устройств AEP. Here are some examples of AQS filter strings that show how to query for AEP devices.

Эта AQS-строка запрашивает все UPnP-объекты AssociationEndpoint, когда DeviceInformationKind имеет значение AsssociationEndpoint. This AQS queries for all UPnP AssociationEndpoint objects when the DeviceInformationKind is set to AsssociationEndpoint.

Эта AQS-строка запрашивает все UPnP-объекты и WSD-объекты AssociationEndpoint, когда DeviceInformationKind имеет значение AsssociationEndpoint. This AQS queries for all UPnP and WSD AssociationEndpoint objects when the DeviceInformationKind is set to AsssociationEndpoint.

Эта AQS-строка запрашивает все UPnP-объекты AssociationEndpointService, когда DeviceInformationKind имеет значение AsssociationEndpointService. This AQS queries for all UPnP AssociationEndpointService objects if the DeviceInformationKind is set to AsssociationEndpointService.

Эта AQS-строка запрашивает объекты AssociationEndpointContainer, у которых DeviceInformationKind имеет значение AssociationEndpointContainer, но находит их только в том случае, если перечисление выполняется по протоколу UPnP. This AQS queries AssociationEndpointContainer objects when the DeviceInformationKind is set to AssociationEndpointContainer, but only finds them by enumerating the UPnP protocol. Обычно неэффективно перечислять контейнеры, которые поступают только из одного протокола. Typically, it wouldn’t be useful to enumerate containers that only come from one protocol. Однако это может быть полезно, если нужно ограничить фильтр протоколами, по которым можно обнаружить ваше устройство. However, this might be useful by limiting your filter to protocols where you know your device can be discovered.

Как получить список сетевых интерфейсов и дополнительную информацию?

10.01.2020, 23:36

Как получить информацию о сетевых подключениях?
Здравствуйте!Такой вопрос.Как получить информацию о сетевых подключениях и занести в Label? Т.е.

Как получить список всех сетевых адаптеров?
Этот код выдает только подключенные адаптеры, а мне надо все: using System.Net.NetworkInformation;.

Как получить список ВСЕХ сетевых адаптеров?(Подробно внутри)
Собственно сабж. Нужно получить список именно ВСЕХ сетевых адаптеров(и даже ‘Disabled’). Плюс.

Получить список сетевых адаптеров
Здравствуйте, Форумчане. Возник вопрос, а можно получить список сетевых адаптеров через код? Что.

Delphi 7. Как получить информацию о установленном железе и список установленных драйверов к нему
В гугле я уже был, там мало интересного на эту тему для Delphi 7. Если кто то сталкивался с этим.

Форум русскоязычного сообщества Ubuntu

За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: сетевая конфигурация /etc/network/interfaces (1часть) Перевод раздела справки (Прочитано 175064 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Страница сгенерирована за 0.068 секунд. Запросов: 24.

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Илон Маск рекомендует:  Что такое код asp realm
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL