P> под Win9x, если сеть Dial-Up будет установлена, будет два библиотеки программы управления сетью, RASAPI32.dll и RASAPI16.DLL в системе системного каталогов системы Windows. и установите информацию о наборе набора для подключения к сети. Конечно, вы можете получить динамический IP-адрес подключения к мощению. В файле справки Delphi есть конкретные инструкции для связанных функций Ras. 1. Сначала объясните некоторые константы данных и структуры данных, которые будут использоваться. констант
Ras_maxdevicetype = 16; // Длина имени типа устройства Длина
Ras_maxentryname = 256; // максимальная длина имени соединения
Ras_maxdevicename = 128; // максимальная длина имени устройства
Ras_maxipaddress = 15; // максимальная длина IP -адреса
RASP_PPPIP = $ 8021; // Тип протокола подключения к мощению, это значение представляет тип соединения PPP
Hrasconn = dword; // Тип контроля подключения
Rasconn = record // Обработка и настройка информации о активном подключении к мощению
DWSIZE: DWORD; // Размер памяти, занятой этой структурой (байты),
Обычно устанавливается на SizeOf (Rasconn)
Hrasconn: Hrasconn; // Руководство активного соединения
szentryname: массив [0..ras_maxentryname] char;
// Имя активного соединения
szdevicetype: массив [0..ras_maxdevicetype] char;
// тип оборудования, используемого для активного соединения
szdeviceName: массив [0..ras_maxDevicEname] char;
// Имя устройства, используемое для активного соединения
конец;
Traspppip = record // Информация о динамическом IP-адресах для активных подключений к обмену
DWSIZE: DWORD; // Размер памяти, занятой этой структурой (байты),
Обычно устанавливается на SizeOf (Trasppip)
DWERROR: DWORD; // Идентификатор типа ошибки
szipaddress: массив [0..ras_maxipaddress] char;
// IP-адрес активного подключения к мощению
конец;
2. Затем нам нужно объяснить две функции Ras, которые будут использоваться. // Получить информацию обо всех активных подключениях к набору (обработка подключения и настройка информации)
функция RasenumConnections (var lprasconn: rasconn;
// получение указателя буфера активного соединения
var lpcb: dword; // размер буфера
var lpcconnections: dword // Фактическое количество активных соединений
): Dword;
Функция RasenumConnections;
Название RasenumConnectionsa;
// Получить динамическую информацию IP для указанного активного подключения к набору
функция rasgetProcectionInfo (
hrasconn: hrasconn; // указать ручку для активного соединения
Распрорективе: DWORD; // тип подключения RAS
var lpproction: traspppip; // буфер для получения динамической информации IP
var LPCB: DWORD // Приемный размер буфера
): Dword; stdcall;
ction rasgetprocectionInfo; внешний
Rasapi32.dll name RasgetProcectionInfoa;
Когда возвратное значение этих двух функций составляет 0, это означает, что выполнение успешно, а не 0 означает код ошибки. 3. Следующее обсуждение посвящено тому, как использовать две вышеупомянутые функции RAS для получения динамического IP-адреса подключения к мощению. Имя, Грандизатор подключения, тип устройства подключения и имя устройства; Для получения подробной информации, пожалуйста, обратитесь к программе фрагментов и информации о комментариях ниже. Процедура tform1.button1click (отправитель: tobject);
констант
Maxconnections = 10; // Предположим, что есть до 10 активных подключений к набору
вар
соединения: массив [0..maxconnections-1] из Rasconn;
// массив соединений на дистанции
Longsize: dword;
Уэтадовые элактики: DWORD;
// Фактическое количество активных подключений на достопримечательностях
Intindex: целое число;
Strtemp: String;
DWRESULT: DWORD;
DWSIZE: DWORD;
Raspppip: traspppip;
// Информация о динамическом IP-адреса
Начинать
соединения [0] .dwsize: = sizeof (rasconn);
longsize: = maxconnections * соединения [0] .dwsize;
// получает размер буфера активного соединения
chatedAledableconnections: = 0;
// Получить информацию обо всех активных подключениях к набору (обработка подключения и настройка информации)
dwresult: = rasenumConnections (соединения [0],
Longsize, atedateBaleConnections);
Если 0 $#@60;
memo1.lines.add (ошибка: + inttoStr (dwresult))
еще
Начинать
memo1.lines.add (существующее активное соединение имеет +
InttoStr (katchAleadableConnections) +);
// Показать информацию обо всех активных подключениях к набору (настройка информации и динамического IP-адреса)
для Intindex: = 0 в watedAlableconnections - 1 do
Начинать
// Показать информацию о настройках для активного подключения к мощению
Strtemp: = Имя соединения:
+ Strpas (соединения [intindex] .szentryname)
+, тип устройства:
+ Strpas (соединения [intindex] .szdevicetype)
+, имя устройства:
+ Strpas (соединения [intindex] .szdeviceName);
memo1.lines.add (strtemp);
// Показать динамический IP-адрес активного подключения к мощению
dwsize: = sizeof (raspppip);
Raspppip.dwsize: = dwsize;
dwresult: = rasgetProcectionInfo
(соединения [Intindex] .hrasconn,
Rasp_pppip, raspppip, dwsize); // получить динамический IP -адрес
Если 0 $#@60;
memo1.lines.add (
Ошибка: + inttoStr (dwresult))
еще
memo1.lines.add (
Динамический адрес: + strpas (raspppip.szipaddress));
конец;
конец;
конец;
Вышеуказанная программа была отлажена и передана в рамках PWIN98+Delphi3.0.