
07.07.2025, 20:44
|
Новичок
|
|
Регистрация: 18.03.2009
Сообщения: 81
Репутация: 10
|
|
Код:
GetExtendedTcpTable(nil, TableSize, True, AF_INET, TCP_TABLE_BASIC_CONNECTIONS {TCP_TABLE_OWNER_PID_ALL}, 0);
if GetExtendedTcpTable(TcpTable, TableSize, True, AF_INET, TCP_TABLE_BASIC_CONNECTIONS {TCP_TABLE_OWNER_PID_ALL}, 0) = NO_ERROR then
Код:
FIpTable[i].LocalAddr := Format('%d.%d.%d.%d:%d:PID:%d', [
dwLocalAddr and $FF,
(dwLocalAddr shr 8) and $FF,
(dwLocalAddr shr 16) and $FF,
(dwLocalAddr shr 24) and $FF,
ntohs(dwLocalPort), dwOwningPid
]);
FIpTable[i].RemoteAddr := Format('%d.%d.%d.%d:%d:PID:%d', [
dwRemoteAddr and $FF,
(dwRemoteAddr shr 8) and $FF,
(dwRemoteAddr shr 16) and $FF,
(dwRemoteAddr shr 24) and $FF,
ntohs(dwRemotePort) , dwOwningPid
]);
и вывод: UNIT1
Код:
begin
IpTableLocker.Enter;
Memo1.Lines.BeginUpdate;
Try
Memo1.Lines.Clear;
for I := 0 to FThread.Count-1 do
Memo1.Lines.Add(Format('%s <=> %s',[FThread.IpTable[i].LocalAddr,FThread.IpTable[i].RemoteAddr,FThread.IpTable[i].PidAddr]));
Finally
Memo1.Lines.EndUpdate;
IpTableLocker.Leave;
End;
проверка:
Код:
if FThread.IpTable[i].PidAddr=1111 then Memo1.Lines.Add(Format('%s <=> %s',[FThread.IpTable[i].LocalAddr,FThread.IpTable[i].RemoteAddr]));
|