python的socket连接端口:代替telnet检测服务器端口

场景:

在使用linux过程中,我们常用telnet来测试对方服务器某个端口是否开通,但linux默认没有安装telnet客户端,很多时候临时安装telnet会比较麻烦,这时候就可以使用python来做简单测试了。

python
import socket
s=socket.socket()
s.connect(("IP",port))
s.close

注:其实就是调用的socket模块,和telnet一样只能来测试tcp端口。

脚本:

 1 #!/usr/bin/python
  2 
  3 import socket,re,sys
  4 
  5 def check_server(address,port):
  6   s=socket.socket()
  7   print "attempting to connect to %s on port %s" %(address,port)
  8 
  9   try:
 10     s.connect((address,port))
 11     print "connected"
 12     return True
 13   except socket.error,e:
 14     print "failed"
 15     return False
 16 
 17 if __name__ == ‘__main__‘:
 18   from optparse import OptionParser
 19   parser=OptionParser()
 20 
 21   parser.add_option("-a","--address",dest="address",default=‘localhost‘,help="ADDRESS for       server",metavar="ADDRESS")
 22   parser.add_option("-p","--port",dest="port",type="int",default=80,help="PORT for server",     metavar="PORT")
 23 
 24   (options,args)=parser.parse_args()
 25   print ‘options %s ,args %s‘%(options,args)
 26   print options.address,options.port
 27   check=check_server(options.address,options.port)
 28 
 29   print ‘check_server returned %s‘ %check
 30   sys.exit(not check)
~
时间: 2024-08-03 04:58:15

python的socket连接端口:代替telnet检测服务器端口的相关文章

检测服务器端口是否被封(墙)

目录 #在国内测试服务器端口是否通 #在国外测试服务器端口是否通 #在国内外同时测试服务器端口是否通 #说明 #在国内测试服务器端口是否通 工具:http://tool.chinaz.com/port #在国外测试服务器端口是否通 工具:https://www.yougetsignal.com/tools/open-ports/ #在国内外同时测试服务器端口是否通 工具:http://port.ping.pe/ 从上图中可以看出该工具可以从世界各地测试某个服务器的端口是否通,示例中的端口除了ch

java 定时检测服务器端口状态方法(一)

最近在写运维管理平台的定时检测集群中各台服务器端口开放状态来判断进程状态的定时任务.顺便整理了下java如何检测服务器一个或者多个端口,以及如何加到定时任务中. 一.java中用Socket检测服务器一个端口开放状态.(对socket不太了解,只是最近用才简单看了下) Socket的英文原义是"孔"或"插座".作为BSD UNIX的进程通信机制,取后一种意思.通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.在Internet上的

java 定时检测服务器端口状态方法(二)

上一节写到检测单个端口,如何快速检测一个ip对应的多个端口.可以用多线程. public List check(String ip,String[] ports){ List<String> results=new ArrayList<String>(); results.add(0,ip); ExecutorService exec=Executors.newCachedThreadPool(); ArrayList<Future<String>> res

linux下用telnet检测远程端口是否打开

方法一. 常用telnet 118.10.6.128 88方式测试远程主机端口是否打开. 方法二. nmap ip -p port 测试端口 nmap ip 显示全部打开的端口 根据显示close/open确定端口是否打开. 方法三. nc -v host port 端口未打开返回状态为非0 一:telnet此法常被用来检测是个远端端口是否通畅. 测试域名: # telnet baidu.com 80 Trying 123.125.114.144... Connected to baidu.co

Python 使用Socket模块编写一个简单的服务器和客户端

任务 Socket套接字开始监听后,使用accept函数来等待客户连接.这个过程在循环中无限循环,服务器处理完和客户端的连接后会再次调用accpet函数,等待下一个连接. 客户端代码 1 import socket 2 s1=socket.socket() 3 s1.bind(("127.0.0.1",2345)) 4 s1.listen(5) 5 while 1: 6 conn,address = s1.accept() 7 print("a new connect fro

java 定时检测服务器端口状态方法(三)

将检测端口封装为一个任务 public class CheckPortsTask extends SuperSupervisory{ private static OmComponentInstanceProcess omComponentInstanceProcess; private List<Map<String,Object>> list=new ArrayList<Map<String,Object>>(); public boolean chec

java 定时检测服务器端口状态方法(四)

写定时任务管理器 public class TimedTaskManager { int TIME_FIVE_SECONDS=5; int TIME_TEN_SECONDS=10; int TIME_FIFITY_SECONDS=15; int delay_time_seconds=2; ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); ScheduledFuture<?> taskHandle_F

Linux下利用nc命令来监控检测服务器的端口使用情况(转载)

最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警处理.批量的系统监控比较好的是用nagios软件来实现,这样小项目专门装一个nagios软件,有点繁琐了.在网上查了一些资料,总结实验了一下,可以用简单的nc命令来实现. 一.nc命令检测端口的用法 # nc -v -w 10 %IP% -z %PORT% -v 显示指令执行过程.

python-检测ssh端口

#!/usr/bin/env python#-*- coding:utf-8 -*-import socket,sysfrom optparse import OptionParserstat_ok=0stat_warning=1stat_critical=2stat_unknown=3 def check_port(address,port):    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)    s.settimeout(3)