telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式,虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23)。

其执行结果有两种:
端口未打开
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused

此时,命令已退出。

端口已打开
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.

此时命令未退出。
根据提示Escape character is '^]'.可知退出字符为'^]'(CTRL+])。此时输入其它字符不能使其退出,CTRL+C都不行。输入CTRL+]后会自动执行,进入命令模式:

^]
telnet>

此时再运行quit才会真正退出。

telnet> quit
Connection closed.

其中,Escape character可以自定义,使用参数-e:

$ telnet -e p 101.199.97.65 62715   #使用p字符
Telnet escape character is 'p'.
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is 'p'.
p
telnet> quit
Connection closed.

即便如此,退出telnet还是麻烦。那么,更进一步,如果出现在脚本中应该如何(优雅地)退出telnet呢?

方案

其实可以这样:

输出结果后立即退出
$ echo "" | telnet 101.199.97.65 62715

Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host. #已成功连通端口并自动退出
$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused #端口未开放
输出结果后延迟退出

sleep 2使得telnet输出结果后,停留2秒后退出命令模式。

$ sleep 2 | telnet 101.199.97.65 62715

Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host.

使用这种方式可以将标准输出和标准错误重定向到文件中,通过分析文件的内容来判断端口打开状态。

最新文章

  1. 使用javascript生成的植物显示过程特效
  2. 一些pc端web事件移动端不再可行
  3. NSUrl的打印
  4. HTML目录
  5. 用ajaxFileUpLoad上传文件不能正确取得返回值的问题
  6. CodeForces 676D Theseus and labyrinth
  7. mysql 盲注二分法python脚本
  8. Arch i3wm
  9. php函数:解决数组转对象时数组内中文乱码问题
  10. 【Dubbo 源码解析】06_Dubbo 服务调用
  11. DLL补丁劫持制作
  12. npm使用过程中出现的错误
  13. address sizes : 46 bits physical, 48 bits virtual
  14. C++ 数据抽象
  15. python 协程(单线程中的异步调用)(转廖雪峰老师python教程)
  16. Redis数据类型--List
  17. Car-eye-http-flv-module 实现nginx-rtmp-mudule HTTP方式的FLV直播功能
  18. spark第十一篇:spark-submit命令支持选项
  19. 在mysql语句中为什么要加反引号
  20. 【BZOJ】3971 [WF2013]Матрёшка

热门文章

  1. Linux SSH 连接安全设置
  2. 手写spark wordCount
  3. 网络命令——last、lastlog、traceroute、netstat
  4. 常用方法 读取 Excel的单位格 为 日期格式 的数据
  5. R 目录及文件操作
  6. Fluent——UDF监测指定点的物理量
  7. 分析WordPress数据表之文章表(功能篇)
  8. iptables只允许指定ip访问本机的指定端口
  9. 简单与实用:SpringMVC的常见使用
  10. [技术博客]Pyqt中View类别容器和Widget类别容器的区别