如何判断ip已知的一台机器上的某个端口是否打开?

vericky 2004-07-14 05:45:03
给点代码参考,谢谢。
...全文
737 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
PiggyXP 2004-07-15
  • 打赏
  • 举报
回复
TO skyMountain(天山):

不用这么客气,举手之劳而已:)
njtlxm 2004-07-15
  • 打赏
  • 举报
回复
随便弄一个UDP包,向目标计算机端口发,如果没有打开,则会给你一个ICMP得回应包,类型是:端口不可达。自己看看相关协议
nineclock 2004-07-15
  • 打赏
  • 举报
回复
connect测试一下就知道端口有没有打开了
nkwesley 2004-07-15
  • 打赏
  • 举报
回复
很简单的端口扫描,示例很多的
skyMountain 2004-07-14
  • 打赏
  • 举报
回复
thanks!
另外还要谢谢你上次给你FTP代码:)
PiggyXP 2004-07-14
  • 打赏
  • 举报
回复
TO skyMountain(天山)

呵呵,当然,我只是说的最简单的情况^_^,因为这样的代码最好写

其实TCP一般都是用的SYN扫描,就是发送一个带有SYN标志的数据包,好像准备打开一个实际的连接并等待回应一样。
如果返回SYN|ACK表示端口处于侦听状态;RST表示端口没有处于侦听状态^_^
其实还有一些别的我就不细说了呵呵

至于你说到的UDP扫描,如果向一个UDP端口发送一个UDP包时,如果端口没有打开,会收到一个ICMP_PORT_UNREACH错误,不过不大可靠,因为无论是udp还是icmp都不是确保能到达的,而且扫描速度很慢,因为icmp消息产生的速率是有限制的^_^
zhjie374 2004-07-14
  • 打赏
  • 举报
回复
telnet ipaddr port
skyMountain 2004-07-14
  • 打赏
  • 举报
回复
to PiggyXP(【小猪】●享受VC,享受网络版●):
商榷一下:
1、端口打开并不完全等同于能否连接成功吧?而且,对于大量主机,逐一扫描好像太慢了,不知是否利用三次握手的原理,简单向对方发送一个ACK包,看对方有否回应,有的话就是打开?
2、上面说的都只是针对TCP,有没有办法知道UDP的情况?就是说,对方有没有进程绑定了某个UDP端口?
PiggyXP 2004-07-14
  • 打赏
  • 举报
回复
就是最简单的端口扫描器的基本原理了

就是用socket往要扫描的端口上做connect,

如果连接成功就是打开了,反之则没有打开

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧