|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『楼 主』:
如何查询局域网内某台电脑是否在运行某个程序(或者端口)
事情是这样的:
我和同事共有三台电脑,通过一个HUB连接,共用一个长宽账号通过代理软件上网.三台电脑都是XP操作系统,都装有代理软件的服务端和客户端,谁先开机谁就用账号登录,其他人要上网的话,就得开启客户端去连接开了服务器的那台机子,常常是一台机子一台机子地去试,看到底是谁开了服务器,如果都没开的话,就得自己用账号登录,非常烦琐.
现在想通过批处理程序,不用第三方软件,自动判断服务器的运行情况,其中关键的一步是查询某台机子上是不是运行了某个程序(比如server.exe),或者是打开了某个端口(比如123),请问该如何编程?
|
|
2006-4-25 01:24 |
|
|
a9319751
中级用户
积分 439
发帖 170
注册 2006-1-9
状态 离线
|
『第
2 楼』:
例子:
nmap -sU -p 18021 172.16.3.1 | find "udp closed" &if not errorlevel 1 @echo A01 >>C:\a.txt
扫描 127.16.3.1机器18201端口,如果发现“udp closed”关闭,显示A01到C:\a.txt
|
|
2006-4-25 08:05 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by a9319751 at 2006-4-25 08:05:
例子:
nmap -sU -p 18021 172.16.3.1 | find "udp closed" &if not errorlevel 1 @echo A01 >>C:\a.txt
扫描 127.16.3.1机器18201端口,如果发现“udp closed”关闭.. |
|
在cmd命令行里运行之后,提示说'namp'不是内部或外部命令,也不是可运行的程序或批处理文件
nmap 不是XP上的cmd命令吧?
|
|
2006-4-25 08:25 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
4 楼』:
cmd在不借用第三方工具是难以实现端口级的应用的。不过你用的什么代理软件?难道客户端不会自动搜索并连接的吗?建议你去找一个可以自动搜索的用。
另外,不清楚你用的代理软件的工作原理,否则可以有针对性地来实现目的。怀疑重点应该是更改网关上面,不用它的客户端就用netsh就可以搞定。
附判断对方是否开启某个端口的vbs脚本如下:
host=inputbox("输入主机名或IP:")
port=inputbox("端口:")
Set socket=WScript.CreateObject("MSWinsock.Winsock","winsock_")
socket.Protocol=0
socket.RemotePort=port
socket.RemoteHost=host
socket.connect
for a=1 to 30
WScript.sleep 10
next
msgbox("端口 "&socket.remoteport&" 被关闭!")
socket.close
WScript.quit
Sub winsock_connect()
msgbox("端口 "&socket.remoteport&" 已打开!")
socket.close
WScript.quit
end sub 保存为 查看端口.vbs 后运行即可,须注册MSWinsock控件。
|
|
2006-4-25 14:06 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by 3742668 at 2006-4-25 14:06:
cmd在不借用第三方工具是难以实现端口级的应用的。不过你用的什么代理软件?难道客户端不会自动搜索并连接的吗?建议你去找一个可以自动搜索皠... |
|
用的是ccproxy和e-border driver组合
|
|
2006-4-25 21:48 |
|