default 12.106.32.1 UGSc 10 6877 hme0
12.106.32/24 link#1 UC 3 0 hme0
12.106.32.1 00:b0:8e:92:2c:00 UHLW 9 7 hme0 1187
12.106.32.253 08:00:20:b8:f7:e0 UHLW 0 1 hme0 140
12.106.32.254 08:00:20:a7:68:b6 UHLW 0 2 lo0
127.0.0.1 127.0.0.1 UH 1 10167 lo0
192.168.42 link#2 UC 2 0 hme1
192.168.42.1 08:00:20:a7:68:6b UHLW 0 11 lo0
192.168.42.2 00:04:ac:17:bf:38 UHLW 2 24108 hme1 210
Internet6:
Destination Gateway Flags Netif Expire
::/96 ::1 UGRSc lo0 =>
default 3ffe:b80:3:9ad1::1 UGSc gif0
::1 ::1 UH lo0
::ffff:0.0.0.0/96 ::1 UGRSc lo0
3ffe:b80:3:9ad1::1 3ffe:b80:3:9ad1::2 UH gif0
3ffe:b80:3:9ad1::2 link#8 UHL lo0
3ffe:b80:1f8d::/48 lo0 USc lo0
3ffe:b80:1f8d:1::/64 link#1 UC hme0
3ffe:b80:1f8d:1::1 08:00:20:a7:68:6b UHL lo0
3ffe:b80:1f8d:2::/64 link#2 UC hme1
3ffe:b80:1f8d:2::1 08:00:20:a7:68:6b UHL lo0
3ffe:b80:1f8d:2:204:acff:fe17:bf38 00:04.ac:17:bf:38 UHLW hme1
fe80::/10 ::1 UGRSc lo0
fe80::%hme0/64 link#1 UC hme0
fe80::a00:20ff:fea7:686b%hme0 08:00:20:a7:68:6b UHL lo0
fe80::%hme1/64 link#2 UC hme1
fe80::a00:20ff:fea7:686b%hme1 08:00:20:a7:68:6b UHL lo0
fe80::%lo0/64 fe80::1%lo0 Uc lo0
fe80::1%lo0 link#6 UHL lo0
fe80::%gif0/64 link#8 UC gif0
fe80::a00:20ff:fea7:686b%gif0 link#8 UHL lo0
ff01::/32 ::1 U lo0
ff02::/16 ::1 UGRS lo0
ff02::%hme0/32 link#1 UC hme0
ff02::%hem1/32 link#2 UC hme1
ff02::%lo0/32 ::1 UC lo0
ff02::%gif0/32 link#8 UC gif0
3. Имея имена интерфейсов, мы выполняем команду
ifconfig
, чтобы получить подробную информацию для каждого интерфейса:
linux % <b>ifconfig eth0</b>
eth0 Link encap:Ethernet HWaddr 00:C0:9F:06:B0:E1
inet addr:206.168.112.96 Bcast:206.168.112.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49214397 errors:0 dropped:0 overruns:0 frame:0
TX packets:40543799 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1098069974 (1047.2 Mb) TX bytes:3360546472 (3204.8 Mb)
Interrupt:11 Base address:0x6000
При этом мы получаем IP-адрес, маску подсети и широковещательный адрес. Флаг
MULTICAST
указывает на то, что узел поддерживает широковещательную передачу. В некоторых реализациях поддерживается флаг
-a
, при указании которого печатается информация обо всех сконфигурированных интерфейсах.
4. Одним из способов определить IP-адрес нескольких узлов локальной сети является проверка широковещательного адреса (найденного нами на предыдущем шаге) с помощью утилиты
ping
.
linux % <b>ping -b 206.168.112.127</b>
WARNING: pinging broadcast address
PING 206.168.112.127 (206.168.112.127) from 206.168.112.96 : 56 (84) bytes of data.
64 bytes from 206.168.112.96: icmp_seq=0 ttl=255 time=241 usec
64 bytes from 206.168.112.40: icmp_seq=0 ttl=255 time=2 566 msec (DUP!)
64 bytes from 206.168.112.118: icmp_seq=0 ttl=255 time=2.973 msec (DUP!)
64 bytes from 206.168.112.14: icmp_seq=0 ttl=255 time=3.089 msec (DUP!)
64 bytes from 206.168.112.126: icmp_seq=0 ttl=255 time=3.200 msec (DUP!)
64 bytes from 206.168.112.71: icmp_seq=0 ttl=255 time=3.311 msec (DUP!)
64 bytes from 206.168.112.31: icmp_seq=0 ttl=255 time=3.541 msec (DUP!)
64 bytes from 206.168.112.7: icmp_seq=0 ttl=255 time=3.636 msec (DUP!)
...
1.10. Стандарты Unix
Когда писалась эта книга, наибольший интерес в сфере стандартизации Unix вызывала деятельность группы Остина по пересмотру общих стандартов (The Austin Common Standards Revision Group, CSRG). Ими было написано в общей сложности около 4000 страниц спецификаций, описывающих более 1700 интерфейсов программирования. Эти спецификации являются одновременно стандартами IEEE POSIX и The Open Group. Поэтому один и тот же стандарт может встретиться вам под разными названиями, например ISO/IEC 9945:2002, IEEE Std 1003.1-2001 и Single Unix Specification Version 3. В нашей книге мы будем называть этот стандарт просто: спецификация POSIX, за исключением разделов, подобных этому, где обсуждаются особенности различных более старых стандартов.
Проще всего получить копию этого консолидированного стандарта, заказав ее на компакт-диске или скачав из Сети (бесплатно). В любом случае начинать следует с
http://www.UNIX.org/version3
.