如何检测远程主机的80端口的状态?
不能使用ping,因为远程主机禁止ping。通过什么代码,可以检测出远程主机的80端口是开放或关闭的呢?我查到了如下的代码:
====================================================Try
{
//连接你要扫描的ip以及端口,连接成功就代表端口开放。
TcpClient client = new TcpClient(strIpaddr,intPort);
//如果没出异常就代表连接成功,会在文本框中打印出来,反之出牞异常就代表连接不成功,下面的语句也不会运行。
this.textBox3.Text += str + " 端口" + port + " 连接成功! ";
}
catch(SocketException e)
{
//出现连接异常,在这里做处理;
}====================================================发现这个代码对任何一个IP都显示连接成功,不论这个IP下有没有主机的存在。实在是奇怪的很啊!
肯定是代码哪里出了问题啊!望高手指教一二,谢谢了!
不能使用ping,因为远程主机禁止ping。通过什么代码,可以检测出远程主机的80端口是开放或关闭的呢?我查到了如下的代码:
====================================================Try
{
//连接你要扫描的ip以及端口,连接成功就代表端口开放。
TcpClient client = new TcpClient(strIpaddr,intPort);
//如果没出异常就代表连接成功,会在文本框中打印出来,反之出牞异常就代表连接不成功,下面的语句也不会运行。
this.textBox3.Text += str + " 端口" + port + " 连接成功! ";
}
catch(SocketException e)
{
//出现连接异常,在这里做处理;
}====================================================发现这个代码对任何一个IP都显示连接成功,不论这个IP下有没有主机的存在。实在是奇怪的很啊!
肯定是代码哪里出了问题啊!望高手指教一二,谢谢了!
client = new TcpClient();
client.Connect(currentIP, intPort);
//如果没出异常就代表连接成功,会在文本框中打印出来,反之异常就代表连接不成功。我加上了connect(),输入了一个IP段,扫描结果还是全部连接成功!
你检查一下ip,port,说不定全部都是开放80端口的
我是要扫描一个IP段,看看究竟哪些IP是活动的,然后再诊断80端口的开放状态!明白了吧!?
client.ReceiveTimeout = 5000;
client.Connect(strIpaddr, intPort);
NetworkStream netStream = client.GetStream();
string msg = netStream.ToString();
if (netStream.CanRead)
{
// Reads NetworkStream into a byte buffer.
byte[] bytes = new byte[client.ReceiveBufferSize]; // Read can return anything from 0 to numBytesToRead.
// This method blocks until at least one byte is read.
netStream.Read(bytes, 0, (int)client.ReceiveBufferSize); // Returns the data received from the host to the console.
string returndata = Encoding.UTF8.GetString(bytes); //Console.WriteLine("This is what the host returned to you: " + returndata); }