HSP Tips / HSPモジュール

現在のTCPの接続中IPを取得

接続中の ローカルIPとリモートIPを取得します

説明

 現在接続が成立しているローカルIPとポート、リモートIPとポートを配列変数に取得します。



ライセンス

NYSL



HSPスクリプト

//Copyright (C) 2007-2009 By As(http://hp.vector.co.jp/authors/VA034028/)
#module

#uselib "iphlpapi.dll"
#func GetTcpTable "GetTcpTable" sptr,sptr,sptr


#deffunc GetTcpList var _len, array _LocalAddres, array _LocalPort, array _RemoteAddres, array _RemotePort
	
	GetTcpTable 0, varptr(size), 0
	sdim TcpTable, size
	GetTcpTable varptr(TcpTable), varptr(size), 0
	cc=4
	_len=lpeek(TcpTable, 0)
	
	sdim _LocalAddres, 28, _len
	dim _LocalPort,len
	sdim _RemoteAddres,28,_len
	dim _RemotePort,_len

	
	repeat _len,0
		ccnt=cnt
		
		repeat 4
			_LocalAddres(ccnt)+=""+peek(TcpTable,cc+4+cnt)
			if cnt!3:_LocalAddres(ccnt)+"."
		loop
		
		_LocalPort(ccnt)=peek(TcpTable,cc+8)
		
		repeat 4
			_RemoteAddres(ccnt)+=""+peek(TcpTable,cc+12+cnt)
			if cnt!3:_RemoteAddres(ccnt)+"."
		loop
		
		_RemotePort=peek(TcpTable,cc+16)
		
		cc+20
	loop




return

#global


#if 1

mes "現在接続中のリモートIPアドレス一覧"
GetTcpList len, la, lp, ra, rp
sysfont 17
repeat len
mes ""+la(cnt)+"\t"+lp(cnt)+"\t\t\t"+ra(cnt)+"\t"+rp(cnt)

loop

#endif