如何测试对方端口是否可用?

时间:2020-12-30 15:20:14
我有一组IP地址,现在想测试这些IP中的某个端口是否可用? (该IP也有可能不在线了)

9 个解决方案

#1


简单的用telnet ip  port,写一个批处理就可以了

要在VC中编程实现就用 tcp socket,connect端口,wsagetlasterror(),设置为非堵塞模式就可以了

#2


CAsyncSocket m_sock;
//...
m_sock.Create();
if( m_sock.Connect(mReader[i].m_strIP,9898) )
{  
  成功;
}
else{
    失败;
}

全部进入了 失败 中了,可是有些IP和端口确实是有用的,我用window media输入IP和端口都能播放(就是说该IP和端口可用)

#3


在你调试程序前,建议你telnet ip 9898看是否能连接,
观察以下情况
1。正常连接上,可以通过键盘发出数据
2。正常连接上,但立刻被remote主机中断
3。连接不上。说明端口确实不可用

仅仅判断返回值,是不足以确定的

m_sock.Create();
if( m_sock.Connect(mReader[i].m_strIP,9898) )
{  
  成功;
}
else{
  int errorcode=GetLastErro();
if (errorcode==WSAEWOULDBLOCK)
{
//当socket是非堵塞的,那么会有OnConnect消息被相应,在这个消息响应函数里你可以确定是否连接上,然后再断开,去连接下一个IP和端口,不要直接循环
}
else
{
//   失败;建议这里取得errorcode来判断具体的代码
}
}

#4


m_sock.Connect(mReader[i].m_strIP,9898)为假
可是该IP和端口确实是可用的啊,该IP在线.
该IP不运行任何socket程序

#5


因为你该IP没有绑定服务器,你的对端机器不是服务器。你本机只是客户端。肯定连不上

#6


remote ip 远端主机如果没有在这个IP和端口上进行监听,何来可用,所谓IP在线,只是你用ping发icmp包,与端口无关

#7


用程序怎么发icmp包?

#8


socket (AF_INET,SOCK_RAW,IPPROTO_ICMP);
指定套接字为原始套接字,和ICMP协议,然后按照ICMP协议封包,sendto,
你可以搜索一下。类似代码很多的

#9


我找了
http://www.codeproject.com/internet/winping.asp
看了下,
但是不知道怎么测试端口啊

#1


简单的用telnet ip  port,写一个批处理就可以了

要在VC中编程实现就用 tcp socket,connect端口,wsagetlasterror(),设置为非堵塞模式就可以了

#2


CAsyncSocket m_sock;
//...
m_sock.Create();
if( m_sock.Connect(mReader[i].m_strIP,9898) )
{  
  成功;
}
else{
    失败;
}

全部进入了 失败 中了,可是有些IP和端口确实是有用的,我用window media输入IP和端口都能播放(就是说该IP和端口可用)

#3


在你调试程序前,建议你telnet ip 9898看是否能连接,
观察以下情况
1。正常连接上,可以通过键盘发出数据
2。正常连接上,但立刻被remote主机中断
3。连接不上。说明端口确实不可用

仅仅判断返回值,是不足以确定的

m_sock.Create();
if( m_sock.Connect(mReader[i].m_strIP,9898) )
{  
  成功;
}
else{
  int errorcode=GetLastErro();
if (errorcode==WSAEWOULDBLOCK)
{
//当socket是非堵塞的,那么会有OnConnect消息被相应,在这个消息响应函数里你可以确定是否连接上,然后再断开,去连接下一个IP和端口,不要直接循环
}
else
{
//   失败;建议这里取得errorcode来判断具体的代码
}
}

#4


m_sock.Connect(mReader[i].m_strIP,9898)为假
可是该IP和端口确实是可用的啊,该IP在线.
该IP不运行任何socket程序

#5


因为你该IP没有绑定服务器,你的对端机器不是服务器。你本机只是客户端。肯定连不上

#6


remote ip 远端主机如果没有在这个IP和端口上进行监听,何来可用,所谓IP在线,只是你用ping发icmp包,与端口无关

#7


用程序怎么发icmp包?

#8


socket (AF_INET,SOCK_RAW,IPPROTO_ICMP);
指定套接字为原始套接字,和ICMP协议,然后按照ICMP协议封包,sendto,
你可以搜索一下。类似代码很多的

#9


我找了
http://www.codeproject.com/internet/winping.asp
看了下,
但是不知道怎么测试端口啊