求代码:
VB实时监听端口(如80、21),获取连接本机的IP,同时写入txt文件VB新手,求完整的代码。用Winsock数组、API均可,谢谢!
写得好可以再加分
VB实时监听端口(如80、21),获取连接本机的IP,同时写入txt文件VB新手,求完整的代码。用Winsock数组、API均可,谢谢!
写得好可以再加分
解决方案 »
- 使用NtQueryDirectoryFile遍历文件/目录
- mshflexgrid 单击后文本出现数字然后修改,出现3021问题,游标位置问题如何解决?
- 原理简单,但是......小问题需要大智慧,看高手过招
- 数字判断
- 有扩展名是asa的数据库吗?
- *~* 简单的动画,我实在调试不出来了,帮忙看看,多谢。。
- 怎样通过一个字符串,去构造我工程中已经有的一个窗体?
- 一个关于在VB监视DOS的问题!100分
- vb用mschart画雷达图,填了16列数,出来的图是17个,多一个空列,怎么把空列去掉呢?谢谢!
- 关于错误处理的问题?
- 怎样获取某已经打开的word文件的当前页号(即光标所在页)?谢谢
- 抓取网页中的内容
shell("echo %time%&netstat -na | find "+chr(34)+":80 "+chr(34)+" >>port80_21.log");
shell("echo %time%&netstat -na | find "+chr(34)+":21 "+chr(34)+" >>port80_21.log");
结果在port80_21.log中
shell应该是调用某个程序,不能调用命令吧..
我看如果要这样实现的话可以创建一个bat文件在里面写入上面echo的命令.
在程序执行中就如上面说的用Timer控件每隔一定时间(比如10秒)调用该bat文件.
执行完就把文件删除掉.
shell "cmd /c echo %time%&netstat -na | find "+chr(34)+":21 "+chr(34)+" >>port80_21.log"
shell "cmd /c echo %time%&netstat -na | find "+chr(34)+":80 "+chr(34)+" >>port80_21.log"得到的是: TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 127.0.0.1:80 127.0.0.1:1074 TIME_WAIT
TCP 127.0.0.1:80 127.0.0.1:1075 TIME_WAIT
TCP 127.0.0.1:80 127.0.0.1:1076 TIME_WAIT
TCP 192.168.1.166:80 192.168.1.166:1081 ESTABLISHED
TCP 192.168.1.166:80 192.168.1.166:1082 ESTABLISHED
TCP 192.168.1.166:80 192.168.1.166:1083 ESTABLISHED
TCP 192.168.1.166:80 192.168.1.166:1084 ESTABLISHED
TCP 192.168.1.166:80 192.168.1.166:1085 ESTABLISHED
TCP 192.168.1.166:80 192.168.1.166:1086 ESTABLISHED
TCP 192.168.1.166:1081 192.168.1.166:80 ESTABLISHED
TCP 192.168.1.166:1082 192.168.1.166:80 ESTABLISHED
TCP 192.168.1.166:1083 192.168.1.166:80 ESTABLISHED
TCP 192.168.1.166:1084 192.168.1.166:80 ESTABLISHED
TCP 192.168.1.166:1085 192.168.1.166:80 ESTABLISHED
TCP 192.168.1.166:1086 192.168.1.166:80 ESTABLISHED
请问怎么才能只获得IP,没有端口、状态这些内容?而且IP不重复记录呢??
#在VB里面利用Timer控件每隔几秒
#shell("cmd /c echo %time%&netstat -na >>netstat.log")
#shell("cmd /c perl.exe getdistip.pl netstat.log >distip.log")
#结果在distip.log中
while (<>) {
chomp;
#print "$_\n";
my($Proto,$LocalIP,$LocalPort,$ForeignIP,$ForeignPort,$State)=/\s+(TCP)\s+(\d+\.\d+\.\d+\.\d+):(\d+)\s+(\d+\.\d+\.\d+\.\d+):(\d+)\s+(\w+)/;
#print "Proto=$Proto,LocalIP=$LocalIP,LocalPort=$LocalPort,ForeignIP=$ForeignIP,ForeignPort=$ForeignPort,State=$State\n";
if ($ForeignPort eq "80" || $ForeignPort eq "21") {
$distForeignIP{$ForeignIP}=1;
}
if ($LocalPort eq "80" || $LocalPort eq "21") {
$distLocalIP{$LocalIP}=1;
}
}
foreach $key (sort keys %distForeignIP) {
print "$key\n";
}
foreach $key (sort keys %distLocalIP) {
print "$key\n";
}