Home

Page 258
Page 258
background image

Сеть на низком уровне

После этого запускается цикл, в котором перебираем все записи кэша;

for I

 0 to

 - 1 do

Внутри цикла первым делом получаем текущую строку ARP-записи:
NetRow :=

 table [I];

После этого проверяем, изменилось ли значение свойства

 текущей

строки по сравнению с предыдущей. Если нет, то строка принадлежит к то-
му же интерфейсу. Если там другое значение, то текущая ARP-строка отно-
сится к другому интерфейсу (не к тому, с которого мы начинали), поэтому

нужно вывести информацию о следующем интерфейсе, найденном с помо-

щью функции
if

 <>

 then

Вот теперь уж точно можно выводить информацию о текущей ARP-записи
на экран:

//Отображаем строки

TPhysAddrByteArray(NetRow.bPhysAddr)),

После вывода информации для всех строк освобождаем всю выделенную

память под хранение таблиц с помощью функции

 Несмотря на

что эта переменная локальная и должна уничтожаться автоматически, я яв-

но уничтожаю переменную, чтобы уж точно быть уверенным в том, что из-

за моей программы не происходит утечка памяти. И вам советую освобождать

всю выделенную память самостоятельно и не надеяться на чужого дядю.

5.9. Изменение записей

Протокол ARP работает автономно, и все записи в нем появляются автома-

тически и без нашего участия. Записи, появляющиеся в ARP-таблице, назы-
ваются динамическими.

Судя по спецификации протокола, у нас есть возможность самим создавать

записи в таблице ARP, и такие записи называются статическими. Зачем это
нужно? Динамические записи хранятся в таблице недолго, и если вы неко-

торое время не обращались по определенному адресу, то его запись уничто-

жается. Это связано с тем, что компьютеры могут иметь динамические

IP-адреса даже в локальных сетях (выделение адресов по протоколу DHCP) и

в любую минуту у компьютера с определенным МАС-адресом может изме-

ниться IP-адрес. Чтобы это несоответствие не создавало конфликтов в сети,

динамические записи в ARP-таблице хранятся только определенное время.

9 Зак. 978


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.