Code: Select all
#AF_INET = 2 ;IPV4
#AF_INET6 = 23 ;IPV6
#TCP_TABLE_BASIC_LISTENER = 0
#TCP_TABLE_BASIC_CONNECTIONS = 1
#TCP_TABLE_BASIC_ALL = 2
#TCP_TABLE_OWNER_PID_LISTENER = 3
#TCP_TABLE_OWNER_PID_CONNECTIONS = 4
#TCP_TABLE_OWNER_PID_ALL = 5
#TCP_TABLE_OWNER_MODULE_LISTENER = 6
#TCP_TABLE_OWNER_MODULE_CONNECTIONS = 7
#TCP_TABLE_OWNER_MODULE_ALL = 8
#UDP_TABLE_BASIC = 0
#UDP_TABLE_OWNER_PID = 1
#UDP_TABLE_OWNER_MODULE = 0
Dim TCPstate.s(15)
For k = 1 To 15
TCPstate(k) = StringField("Closed|Listening|SYN Sent|SYN Received|Established|Waiting For FIN|Waiting For FIN|Waiting For Close|Closing|Last ACK|Time Wait|TCB deleted", k, "|")
Next
Structure MIB_TCPTABLE_OWNER_PID
dwStats.l
dwLocalAddr.l
dwLocalPort.l
dwRemoteAddr.l
dwRemotePort.l
dwOwningPid.l
EndStructure
Structure MIB_TCPTABLE
dwNumEntries.l
table.MIB_TCPTABLE_OWNER_PID[2048]
EndStructure
Structure MIB_UDPTABLE_OWNER_PID
dwLocalAddr.l
dwLocalPort.l
dwOwningPid.l
EndStructure
Structure MIB_UDPTABLE
dwNumEntries.l
table.MIB_UDPTABLE_OWNER_PID[2048]
EndStructure
If OpenLibrary(0, "iphlpapi.dll")
dwSize = $0
If CallFunction(0,"GetExtendedTcpTable",@tcpTable.MIB_TCPTABLE , @dwSize, #True,#AF_INET,#TCP_TABLE_OWNER_PID_ALL,0)
If CallFunction(0,"GetExtendedTcpTable",@tcpTable.MIB_TCPTABLE , @dwSize, #True,#AF_INET,#TCP_TABLE_OWNER_PID_ALL,0) = #NO_ERROR
For cnt = 0 To tcpTable\dwNumEntries - 1
Debug("type: TCP")
Debug("state: " + TCPstate (tcpTable\table[cnt]\dwStats))
Debug("local IP: " + IPString(tcpTable\table[cnt]\dwLocalAddr))
Debug("local port: " + Str(htons_(tcpTable\table[cnt]\dwLocalPort)))
Debug("remote IP: " + IPString(tcpTable\table[cnt]\dwRemoteAddr))
Debug("remote port: " + Str(htons_(tcpTable\table[cnt]\dwRemotePort)))
Debug("PID: " + Str(tcpTable\table[cnt]\dwOwningPid))
Debug("")
Next
EndIf
EndIf
dwSize = $0
If CallFunction(0,"GetExtendedUdpTable",@udpTable.MIB_UDPTABLE , @dwSize, #True,#AF_INET,#UDP_TABLE_OWNER_PID,0)
If CallFunction(0,"GetExtendedUdpTable",@udpTable.MIB_UDPTABLE , @dwSize, #True,#AF_INET,#UDP_TABLE_OWNER_PID,0) = #NO_ERROR
For cnt = 0 To udpTable\dwNumEntries - 1
Debug("type UDP")
Debug("local IP: " + IPString(udpTable\table[cnt]\dwLocalAddr))
Debug("local port: " + Str(htons_(udpTable\table[cnt]\dwLocalPort)))
Debug("PID: " + Str(udpTable\table[cnt]\dwOwningPid))
Debug("")
Next
EndIf
EndIf
CloseLibrary(0)
EndIf
End