方法一: 使用組件來探測
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 >
總結: 以上三種方法就安全性來考慮, 第三種最為合適