等待高人指点~~~~
11 个解决方案
#1
貌似无法对客户端进行判断,出于安全方面的原因
#2
不是客户端,是远程IP
比如我在运行中输入cmd
然后telnet www.163.com 80
如果链接不成功,他会有提示这个80端口链接不上。
比如我在运行中输入cmd
然后telnet www.163.com 80
如果链接不成功,他会有提示这个80端口链接不上。
#3
TcpClient类和UdpClient类TcpClient类和UdpClient类是编写网络应用程序中最常用的二个类。TcpClient类主要为TCP网络服务提供客户端连接,基于Socket类,提供了建立网络TCP连接、发送和接收数据的简单方法。UdpClient类主要作用是提供用户数据报文(UDP)网络服务,亦基于Socket类,提供了建立网络UDP发送和接收数据的简单方法。通过TcpClient类和UdpClient类不仅可以实现上述功能,而且还可以实现对计算机端口状态的判断。计算机端口的状态分成二种:监听状态和不监听状态(有时又称端口打开和关闭)。网络上计算机间交换数据都要通过端口来实现(这里所说的端口是软端口,也可以称为逻辑端口,主要是和计算机上的硬端口相比较的)。当计算机在向外界提供服务一般都要监听一个和多个端口,如Web服务器,提供的是HTTP协议服务,它就必须监听80端口;FTP服务器,提供的是FTP协议服务,服务器监听的是21端口;POP3服务器,提供POP3协议服务,服务器就监听110端口。有时黑客和木马病毒程序其实也可以看作是网络的一种服务,因为它们也需要监听端口,来向远程计算机发送本地数据和接收远程计算机的控制命令。判断端口是否处于TCP监听状态可以使用的是TcpClient类中的“Connect”方法,此方法是在本地机和指定计算机的指定端口之间建立TCP连接。如果指定计算机的指定端口处于TCP监听状态,此时则连接成功;如果指定计算机的指定端口不处于TCP监听状态,则调用“Connect”方法时会出现异,通过对异常处理,就可以判断指定计算机指定端口并不处于TCP监听状态。同样判断端口是否处于UDP监听状态可以使用的是UdpClient类中的“Connect”方法,判断指定计算机指定端口号是否处于UDP监听状态和上面的方法基本相同。如果指定计算机的指定端口既不处于TCP监听状态,也不处于UDP监听状态,就可以判断此端口处于不监听状态,如果计算机指定端口属于TCP监听状态或者处于UDP监听状态,都认为此端口是处于监听状态的。下面代码分别是判断IP地址为“202.96.170.165”主机的8000端口是否处于监听状态的代码清单:
booltcpListen=false;booludpListen=false;//设定端口状态标识位System.Net.IPAddressmyIpAddress=IPAddress.Parse("202.96.170.165");System.Net.IPEndPointmyIpEndPoint=newIPEndPoint(myIpAddress,8000);try{System.Net.Sockets.TcpClienttcpClient=newTcpClient();tcpClient.Connect(myIpEndPoint);//对远程计算机的指定端口提出TCP连接请求tcpListen=true;}catch{}try{System.Net.Sockets.UdpClientudpClient=newUdpClient();udpClient.Connect(myIpEndPoint);//对远程计算机的指定端口提出UDP连接请求udpListen=true;}catch{}if(tcpListen==false&&udpListen==false){MessageBox.Show("8000端口关闭!","提示");}elseMessageBox.Show("8000端口打开!","提示");}
#4
其实自己也不会,g.cn来的.我也试试,完了再回来给你个
#5
http://www.aspnettutorials.com/tutorials/network/net-ping-aspnet2-vb.aspx
#6
谢谢各位的资料。我看看写。出结果了一起分享~~谢谢
#7
try
{
lblStatus.Text = "";
Ping ping = new Ping();
PingReply pingreply = ping.Send(txtHost.Text);
txtPing.Text += "Address: " + pingreply.Address.ToString() +"\r\n";
txtPing.Text += "Roundtrip Time: " + pingreply.RoundtripTime + "\r\n";
txtPing.Text += "TTL (Time To Live): " + pingreply.Options.Ttl + "\r\n";
txtPing.Text += "Buffer Size: " + pingreply.Buffer.Length.ToString() + "\r\n";
}
catch (Exception err)
{
lblStatus.Text = err.Message;
}
<table width="600" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#cccccc">
<tr>
<td width="100" align="right" bgcolor="#eeeeee" class="header1">
Hostname/IP:</td>
<td align="center" bgcolor="#FFFFFF">
<asp:TextBox ID="txtHost" runat="server"></asp:TextBox>
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" /></td>
</tr>
<tr>
<td width="100" align="right" bgcolor="#eeeeee" class="header1">
Ping Results:</td>
<td align="center" bgcolor="#FFFFFF">
<asp:TextBox ID="txtPing" runat="server" Height="66px" TextMode="MultiLine" Width="226px"></asp:TextBox> <br />
<asp:Label ID="lblStatus" runat="server"></asp:Label></td>
</tr>
</table>
#8
private void test()
{
string msg="";
System.Net.IPAddress ip = System.Net.IPAddress.Parse("127.0.0.1");
System.Net.IPEndPoint point = new System.Net.IPEndPoint(ip, 80);
try
{
System.Net.Sockets.TcpClient tc = new System.Net.Sockets.TcpClient();
tc.Connect(ip, 80);
msg = "80端口打开";
}
catch
{
msg = "80端口关闭";
}
MessageBox.Show(msg);
}
#9
7楼的好像只能ping IP只能。不能判断端口啊
#10
结贴~~8楼正解,谢谢
#11
看看看看看
#1
貌似无法对客户端进行判断,出于安全方面的原因
#2
不是客户端,是远程IP
比如我在运行中输入cmd
然后telnet www.163.com 80
如果链接不成功,他会有提示这个80端口链接不上。
比如我在运行中输入cmd
然后telnet www.163.com 80
如果链接不成功,他会有提示这个80端口链接不上。
#3
TcpClient类和UdpClient类TcpClient类和UdpClient类是编写网络应用程序中最常用的二个类。TcpClient类主要为TCP网络服务提供客户端连接,基于Socket类,提供了建立网络TCP连接、发送和接收数据的简单方法。UdpClient类主要作用是提供用户数据报文(UDP)网络服务,亦基于Socket类,提供了建立网络UDP发送和接收数据的简单方法。通过TcpClient类和UdpClient类不仅可以实现上述功能,而且还可以实现对计算机端口状态的判断。计算机端口的状态分成二种:监听状态和不监听状态(有时又称端口打开和关闭)。网络上计算机间交换数据都要通过端口来实现(这里所说的端口是软端口,也可以称为逻辑端口,主要是和计算机上的硬端口相比较的)。当计算机在向外界提供服务一般都要监听一个和多个端口,如Web服务器,提供的是HTTP协议服务,它就必须监听80端口;FTP服务器,提供的是FTP协议服务,服务器监听的是21端口;POP3服务器,提供POP3协议服务,服务器就监听110端口。有时黑客和木马病毒程序其实也可以看作是网络的一种服务,因为它们也需要监听端口,来向远程计算机发送本地数据和接收远程计算机的控制命令。判断端口是否处于TCP监听状态可以使用的是TcpClient类中的“Connect”方法,此方法是在本地机和指定计算机的指定端口之间建立TCP连接。如果指定计算机的指定端口处于TCP监听状态,此时则连接成功;如果指定计算机的指定端口不处于TCP监听状态,则调用“Connect”方法时会出现异,通过对异常处理,就可以判断指定计算机指定端口并不处于TCP监听状态。同样判断端口是否处于UDP监听状态可以使用的是UdpClient类中的“Connect”方法,判断指定计算机指定端口号是否处于UDP监听状态和上面的方法基本相同。如果指定计算机的指定端口既不处于TCP监听状态,也不处于UDP监听状态,就可以判断此端口处于不监听状态,如果计算机指定端口属于TCP监听状态或者处于UDP监听状态,都认为此端口是处于监听状态的。下面代码分别是判断IP地址为“202.96.170.165”主机的8000端口是否处于监听状态的代码清单:
booltcpListen=false;booludpListen=false;//设定端口状态标识位System.Net.IPAddressmyIpAddress=IPAddress.Parse("202.96.170.165");System.Net.IPEndPointmyIpEndPoint=newIPEndPoint(myIpAddress,8000);try{System.Net.Sockets.TcpClienttcpClient=newTcpClient();tcpClient.Connect(myIpEndPoint);//对远程计算机的指定端口提出TCP连接请求tcpListen=true;}catch{}try{System.Net.Sockets.UdpClientudpClient=newUdpClient();udpClient.Connect(myIpEndPoint);//对远程计算机的指定端口提出UDP连接请求udpListen=true;}catch{}if(tcpListen==false&&udpListen==false){MessageBox.Show("8000端口关闭!","提示");}elseMessageBox.Show("8000端口打开!","提示");}
#4
其实自己也不会,g.cn来的.我也试试,完了再回来给你个
#5
http://www.aspnettutorials.com/tutorials/network/net-ping-aspnet2-vb.aspx
#6
谢谢各位的资料。我看看写。出结果了一起分享~~谢谢
#7
try
{
lblStatus.Text = "";
Ping ping = new Ping();
PingReply pingreply = ping.Send(txtHost.Text);
txtPing.Text += "Address: " + pingreply.Address.ToString() +"\r\n";
txtPing.Text += "Roundtrip Time: " + pingreply.RoundtripTime + "\r\n";
txtPing.Text += "TTL (Time To Live): " + pingreply.Options.Ttl + "\r\n";
txtPing.Text += "Buffer Size: " + pingreply.Buffer.Length.ToString() + "\r\n";
}
catch (Exception err)
{
lblStatus.Text = err.Message;
}
<table width="600" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#cccccc">
<tr>
<td width="100" align="right" bgcolor="#eeeeee" class="header1">
Hostname/IP:</td>
<td align="center" bgcolor="#FFFFFF">
<asp:TextBox ID="txtHost" runat="server"></asp:TextBox>
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" /></td>
</tr>
<tr>
<td width="100" align="right" bgcolor="#eeeeee" class="header1">
Ping Results:</td>
<td align="center" bgcolor="#FFFFFF">
<asp:TextBox ID="txtPing" runat="server" Height="66px" TextMode="MultiLine" Width="226px"></asp:TextBox> <br />
<asp:Label ID="lblStatus" runat="server"></asp:Label></td>
</tr>
</table>
#8
private void test()
{
string msg="";
System.Net.IPAddress ip = System.Net.IPAddress.Parse("127.0.0.1");
System.Net.IPEndPoint point = new System.Net.IPEndPoint(ip, 80);
try
{
System.Net.Sockets.TcpClient tc = new System.Net.Sockets.TcpClient();
tc.Connect(ip, 80);
msg = "80端口打开";
}
catch
{
msg = "80端口关闭";
}
MessageBox.Show(msg);
}
#9
7楼的好像只能ping IP只能。不能判断端口啊
#10
结贴~~8楼正解,谢谢
#11
看看看看看