Python实现telnet命令测试防火墙
Python实现telnet命令测试防火墙
telnet
主要用于测试主机端口是否开通ping
主要是用来测试网络是否畅通和主机是否正在使用
使用Python实现Telnet测试主机端口是否开通的功能。使用telnet命令是会出现以下集中情况:
通过Python的socket模块来实现,根据上述三种情况进行不同的处理
Telnet协议是基于tcp协议实现的
主机和端口都是通的
这种情况,就会正常连接,正常发送和返回,socket没有任何异常,不用管是否需要密码这一情况,这种情况只需要socket连接主机ip和port,就肯定能链接目标主机ip和端口。
只需要连接自后断开就ok
主机通端口不通
这种情况,连接过程中,socket会抛出ConnectionRefusedError
异常,这种情况只需要socket连接主机ip和port,然后捕获对应的异常进行处理即可。
只需要针对连接过程中会抛出ConnectionRefusedError
异常进行处理
主机不通
这种情况,socket会一直尝试连接,针对这种情况设置一个超时时间,会抛出socket.timeout
的异常,捕获该异常进行处理即可
只需要针对连接过程中会抛出socket.timeout
异常进行处理
代码逻辑如下:
#!/usr/bin/python3
# -*-encoding: utf8 -*-
import socket
Buffer_ = 1024
def write_ip_port(file_name, host, ports):
"""
文件操作,生成对应的记录文件
:param file_name: 生成的文件名
:param host: 主机IP
:param ports: 主机端口
:return:
"""
with open('./%s' % file_name, mode='a+', encoding='utf8') as file_handler:
file_handler.write("%s\t%s\n" % (host, ports))
def connection_host(host, port):
"""
测试防火墙是否开通
:param host: 主机ip
:param port: 主机端口
:return:
"""
cli = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
cli.settimeout(1)
try:
"""
处理正常连接
"""
cli.connect((host, int(port)))
cli.close()
file = 'successful.txt'
write_ip_port(file, host, port)
except ConnectionRefusedError as cre:
"""
处理端口关闭
"""
# print(cre)
file = 'ConnectionRefusedError.txt'
write_ip_port(file, host, port)
except socket.timeout as scto:
"""
处理主机不通
"""
# print(scto)
file = "failed.txt"
write_ip_port(file, host, port)
def read_ip_list(file_name):
"""
读取ipList.txt文件中的ip和端口,添加到ip_list列表中
"""
ip_list = []
with open('./%s' % file_name, mode='r', encoding='utf8') as file_handle:
for line in file_handle.readlines():
line = line.replace("\n", '').strip()
if line is '':
continue
line = line.split(' ')
ip_list.append(line)
return ip_list
def main(file):
"""
主程序入口
:param file: ip和端口的文件名,及其为路径,默认是当前路径
:return:
"""
ip_list = read_ip_list(file)
for ip_port in ip_list:
connection_host(ip_port[0], ip_port[1])
if __name__ == '__main__':
main("ipList.txt")
Python实现telnet命令测试防火墙的更多相关文章
- 基于Python的AT命令测试脚本
对于各种有线&无线调制解调器(modem)产品来说,AT命令是事实上的标准接口之一,在工业界被广泛使用. 我开发了一套基于Python的AT命令测试脚本,源代码可在github上获取: htt ...
- telnet命令测试端口连接是否正常, telnet不是内部或外部命令的方案
telnet ip地址 端口 1.点击开始 → 运行 → 输入CMD,回车.2.在DOS界面里,输入telnet测试端口命令: telnet IP 端口 或 telnet 域名 端口,回车. ...
- 测试端口是否开放用PIN还是telnet命令
有时候很想知道一个IP的某个端口是否开放,那么你会用什么命令来测试呢?是ping还是telnet? 其实正确的方法应该是telnet命令.因为用ping命令的话不管你ping哪个端口,只要这个IP地址 ...
- win7系统不能用telnet命令的两种解决方法
电脑专业人员对telnet命令都不陌生了,Telnet当成一种通信协议,在日常工作中,经常面对网络问题的人都会用到telnet命令,因为简单有效,可以帮助更快的找出问题.要是在使用过程中碰到win7纯 ...
- Java 实现 telnet命令 验证主机端口的连通性
Java 实现 telnet命令 验证主机端口的连通性 1.Telnet 命令 Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式.它为用户提供了在本地计 ...
- CentOS7的防火墙以及selinux介绍/安装telnet命令/安装netstat与ifconfig命令
简介:firewall防火墙的使用 防火墙:主要用户信息安全防护,主要有软件防火墙和硬件防火墙.firewalld防火墙是软件防火墙,在centos7 之前默认采用的防火墙是iptables,而在ce ...
- 如何使用批处理解决批量telnet命令的输入
用telnet命令做不了自动,因为如果成功telnet了,telnet就控制输入了.其实,不用那么麻烦,您下载一个微软官方的扫描器叫portqry,用一句for读取您文件里的ip和port,执行就行了 ...
- telnet命令使用详解
telnet命令用于登录远程主机,对远程主机进行管理.telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了.但仍然有很多别的系统可能采 ...
- linux 安装telnet命令及使用
一.CentOS下查看系统是否已安装telnetrpm -qa | grep telnettelnet-0.17-48.el6.x86_64telnet-server-0.17-48.el6.x86_ ...
随机推荐
- 关闭钩子(shutdown hook)的作用以及在Tomcat中的使用
在很多实际应用环境中,当用户关了应用程序时,需要做一些善后清理工作,但问题是,用户有时并不会按照推荐的方法关闭应用程序,很有可能不做清理工作,例如在Tomcat的部署应用中,通过实例化一个Server ...
- asp.net 7.分页
分页 SQL: select * from( select *,row_number()over(order by id) as num from T_userInfo) as t 数据层(UserI ...
- 洛谷UVA11987Almost Union-Find题解--并查集的删除
题目链接 https://www.luogu.org/problemnew/show/UVA11987 分析 分析下操作发现就是加了个删除操作的并查集,怎么做删除操作呢. 我们用一个\(id[]\)记 ...
- dva中的一些备忘
dva/router就是react-router-dom dva/router里的routerRedux就是react-router-redux 一个react的单页面应用: 编写一个基础框架,包含单 ...
- 【Git的基本操作一】文件初始化及设置签名
1. 本地库初始化 命令: git init 效果:
- 实现单点登录功能的思路以及kafka同步数据
单点登录以及用户数据同步思路与方案 当公司业务分布于多个子系统时, 同一用户在A系统注册,即可在其他所有关联系统使用, 并支持登录A系统后,自动在其他系统登录,退出同理. 在A平台修改通用的用户数据( ...
- Linux 之Ubuntu在VM中安装(桌面版)
1.安装系统 https://jingyan.baidu.com/article/14bd256e0ca52ebb6d26129c.html 2.安装VM Tools https://jingyan. ...
- 小程序UI设计(9)-文字排版
小程序中一般很少大段落的文字,基本是4.5个字的主题.一行标题.一行摘要.两行描述.显示时超出部分用省略号代替.下面结合工具使用介绍一下文字排版的方法.先看效果图. 工具中属性设置如下图:两行文字属 ...
- K nearest neighbor cs229
vectorized code 带来的好处. import numpy as np from sklearn.datasets import fetch_mldata import time impo ...
- 第十五届四川省省赛 SCU - 4439 Vertex Cover
给你一个一般图 保证每条边的一端下标不大于30 问最小覆盖集的大小为多少 爆搜:枚举前30个点是否在覆盖集内 剪枝1:如果不在的话 那么他所连的下标大于30的点都必须选 剪纸2:最优解剪枝 #incl ...