用ASP探测远程主机是否开机的三種方法
来源:互联网 发布:渤海污染 知乎 编辑:程序博客网 时间:2024/06/05 22:48
方法一: 使用組件來探測
Ping常用的属性与方法:
1.建立Asping组件:Ser Pinger=Server.CreateObject("AspPing.conn")
其中Aspping.conn是此Ping组件在计算机上所注册的名称
2.RemoteHost :设置所有测试的Ip地址或主机名称:
Pinger.RemoteHost="IP地址或主机名称"
3.PingCount:指定所有测试(Ping主机)的次数
Pinger.PingCount=所要测试的次数
4.Ping :获得测试结果(返回的信息)
Pinger.ping
更多的语法可以在帮助中得到相关信息,这里不多说了。下面举个例子来说明吧!
<html>
<title>我要Ping你!</title>
<body>
<%
//创建ping对像
Set Myping=Server.CreateObject("AspPing.Conn")
//设置要测试的网址
MyPing.RemoteHost="www.1studio.net" //豪哥可别怪我哦.....
//设置所要测试的次数
Myping.pingCount=4 //如果很多人Ping,设置的次数为:100000的时候,,嘿嘿........
//显示测试结果,获得相关信息.
Response.Write"<pre>"& MyPing.ping &"</pre>"
//运行完成后记得释放对像
Set Myping=Nothing
%>
</body>
</html>
方法二: 用 WSH 中的Ping 命令
使用WSH呼叫系統的Ping指令,將Ping的結果寫入到一個純文字文件中去,再把純文字文件顯示到網頁中。具體做法如下:
建立一個.BAT文件(例:myPing.BAT),這個文件要在ASP中呼叫,文件程式碼如下:
ping -a %1 > d:/INetPub/cgi-bin/%2.txt
(%1)是將來要ping的地址, (%2)是儲存ping結果的文件. 以下是ASP的程式碼:
< %
Set FileSys = Server.CreateObject("Scripting.FileSystemObject")
FileName = FileSys.GetTempName
Set WShShell = Server.CreateObject("WScript.Shell")
IP = "xxx.xxx.xxx.xxx" ’你要ping的地址
RetCode = WShShell.Run("d:Inetpubcgi-binmyPing.bat " & IP & " " & FileName, 1, True)
if RetCode = 0 Then
’沒有錯誤
else
Response.Redirect "PingErrors.htm"
end if
Set TextFile = FileSys.OpenTextFile("d:InetPubcgi-bin" & FileName & ".txt", 1)
TextBuffer = TextFile.ReadAll
For i = 1 to Len(TextBuffer)
If Mid(TextBuffer,i,1) = chr(13) Then
Response.Write("
")
else
Response.Write(Mid(TextBuffer,i,1))
end if
Next
TextFile.Close
FileSys.DeleteFile "d:Inetpubcgi-bin" & FileName & ".txt"
% >
方法三 : 用 WinSock 來探測
以下是连接失败的例子(等待时间较长),把RemotePort改成80是连接成功的例子。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Winsock</title>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function ws_Connect() {
alert("连接成功!");
}
function ws_Error() {
alert("连接失败!");
}
//-->
</SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=ws EVENT=Connect>
<!--
ws_Connect()
//-->
</SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=ws EVENT=Error>
<!--
ws_Error()
//-->
</SCRIPT>
</head>
<body>
<OBJECT id="ws" classid="clsid:248DD896-BB45-11CF-9ABC-0080C7E7B78D" VIEWASTEXT>
<PARAM NAME="_ExtentX" VALUE="741">
<PARAM NAME="_ExtentY" VALUE="741">
<PARAM NAME="_Version" VALUE="393216">
<PARAM NAME="Protocol" VALUE="tcp/ip">
<PARAM NAME="RemoteHost" VALUE="www.263.net">
<PARAM NAME="RemotePort" VALUE="81">
<PARAM NAME="LocalPort" VALUE="0">
</OBJECT>
<script>
ws.Connect();
</script>
</body>
</html>
總結: 以上三種方法就安全性來考慮, 第三種最為合適
Ping常用的属性与方法:
1.建立Asping组件:Ser Pinger=Server.CreateObject("AspPing.conn")
其中Aspping.conn是此Ping组件在计算机上所注册的名称
2.RemoteHost :设置所有测试的Ip地址或主机名称:
Pinger.RemoteHost="IP地址或主机名称"
3.PingCount:指定所有测试(Ping主机)的次数
Pinger.PingCount=所要测试的次数
4.Ping :获得测试结果(返回的信息)
Pinger.ping
更多的语法可以在帮助中得到相关信息,这里不多说了。下面举个例子来说明吧!
<html>
<title>我要Ping你!</title>
<body>
<%
//创建ping对像
Set Myping=Server.CreateObject("AspPing.Conn")
//设置要测试的网址
MyPing.RemoteHost="www.1studio.net" //豪哥可别怪我哦.....
//设置所要测试的次数
Myping.pingCount=4 //如果很多人Ping,设置的次数为:100000的时候,,嘿嘿........
//显示测试结果,获得相关信息.
Response.Write"<pre>"& MyPing.ping &"</pre>"
//运行完成后记得释放对像
Set Myping=Nothing
%>
</body>
</html>
方法二: 用 WSH 中的Ping 命令
使用WSH呼叫系統的Ping指令,將Ping的結果寫入到一個純文字文件中去,再把純文字文件顯示到網頁中。具體做法如下:
建立一個.BAT文件(例:myPing.BAT),這個文件要在ASP中呼叫,文件程式碼如下:
ping -a %1 > d:/INetPub/cgi-bin/%2.txt
(%1)是將來要ping的地址, (%2)是儲存ping結果的文件. 以下是ASP的程式碼:
< %
Set FileSys = Server.CreateObject("Scripting.FileSystemObject")
FileName = FileSys.GetTempName
Set WShShell = Server.CreateObject("WScript.Shell")
IP = "xxx.xxx.xxx.xxx" ’你要ping的地址
RetCode = WShShell.Run("d:Inetpubcgi-binmyPing.bat " & IP & " " & FileName, 1, True)
if RetCode = 0 Then
’沒有錯誤
else
Response.Redirect "PingErrors.htm"
end if
Set TextFile = FileSys.OpenTextFile("d:InetPubcgi-bin" & FileName & ".txt", 1)
TextBuffer = TextFile.ReadAll
For i = 1 to Len(TextBuffer)
If Mid(TextBuffer,i,1) = chr(13) Then
Response.Write("
")
else
Response.Write(Mid(TextBuffer,i,1))
end if
Next
TextFile.Close
FileSys.DeleteFile "d:Inetpubcgi-bin" & FileName & ".txt"
% >
方法三 : 用 WinSock 來探測
以下是连接失败的例子(等待时间较长),把RemotePort改成80是连接成功的例子。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Winsock</title>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function ws_Connect() {
alert("连接成功!");
}
function ws_Error() {
alert("连接失败!");
}
//-->
</SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=ws EVENT=Connect>
<!--
ws_Connect()
//-->
</SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=ws EVENT=Error>
<!--
ws_Error()
//-->
</SCRIPT>
</head>
<body>
<OBJECT id="ws" classid="clsid:248DD896-BB45-11CF-9ABC-0080C7E7B78D" VIEWASTEXT>
<PARAM NAME="_ExtentX" VALUE="741">
<PARAM NAME="_ExtentY" VALUE="741">
<PARAM NAME="_Version" VALUE="393216">
<PARAM NAME="Protocol" VALUE="tcp/ip">
<PARAM NAME="RemoteHost" VALUE="www.263.net">
<PARAM NAME="RemotePort" VALUE="81">
<PARAM NAME="LocalPort" VALUE="0">
</OBJECT>
<script>
ws.Connect();
</script>
</body>
</html>
總結: 以上三種方法就安全性來考慮, 第三種最為合適
- 用ASP探测远程主机是否开机的三種方法
- 探测远程Windows主机的NetBIOS信息
- Delphi中用ICMP探测远程主机是否存活
- 判断主机是否支持远程开机?
- 使用isReachable方法探测主机是否可以连通
- 使用isReachable方法探测主机是否可以连通
- 批量探测主机是否存活
- (转载)探测远程Windows主机的NetBIOS信息
- 探测远程主机上防火墙允许开放的端口
- 探测网络设备(主机、路由器)存活的方法
- 检测远程URL是否存在的三种方法
- 检测远程URL是否存在的三种方法
- 检测远程URL是否存在的三种方法
- 检测远程URL是否存在的三种方法
- 检测远程URL是否存在的三种方法
- 检测远程URL是否存在的三种方法
- 检测远程URL是否存在的三种方法
- 检测远程URL是否存在的三种方法
- Linux版华为3Com 802.1认证客户端西安建筑科技大学专用版,源码开放
- Eclipse+JDK+API中文帮助文档的java开发环境搭建(转载)
- 泛探接入网
- JSP中文乱码处理
- 自定义UI在不同的LookAndFeel下的替换问题.
- 用ASP探测远程主机是否开机的三種方法
- 一些常用的JS函数
- Fat Jar Eclipse Plug-In教程
- Word操作技巧
- GPRS扫盲篇
- 2007年我的必读书
- C++ 读写MySQL经典
- CDMA与GSM接续时长对比测试分析zz
- 如何打开软键盘