问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 查看端口是否开通

发布网友 发布时间:2022-04-21 20:45

我来回答

5个回答

热心网友 时间:2022-04-18 09:20

一、常见端口扫描的原理
0、秘密扫描

秘密扫描是一种不被审计工具所检测的扫描技术。

它通常用于在通过普通的防火墙或路由器的筛选(filtering)时隐藏自己。

秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。由于没有包含TCP 3次握手协议的任何部分,所以无法被记录下来,比半连接扫描更为隐蔽。

但是这种扫描的缺点是扫描结果的不可靠性会增加,而且扫描主机也需要自己构造IP包。现有的秘密扫描有TCP FIN扫描、TCP ACK扫描、NULL扫描、XMAS扫描和SYN/ACK扫描等。

1、Connect()扫描

此扫描试图与每一个TCP端口进行“三次握手”通信。如果能够成功建立接连,则证明端口开发,否则为关闭。准确度很高,但是最容易被防火墙和IDS检测到,并且在目标主机的日志中会记录大量的连接请求以及错误信息。

TCP connect端口扫描服务端与客户端建立连接成功(目标端口开放)的过程:

① Client端发送SYN;

② Server端返回SYN/ACK,表明端口开放;

③ Client端返回ACK,表明连接已建立;

④ Client端主动断开连接。

建立连接成功(目标端口开放)

TCP connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:

① Client端发送SYN;

② Server端返回RST/ACK,表明端口未开放。

优点:实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有root权限),系统中的任何用户都有权力使用这个调用,而且如果想要得到从目标端口返回banners信息,也只能采用这一方法。

另一优点是扫描速度快。如果对每个目标端口以线性的方式,使用单独的connect()调用,可以通过同时打开多个套接字,从而加速扫描。

缺点:是会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。目标主机的logs文件会显示一连串的连接和连接出错的服务信息,并且能很快地使它关闭。

2、SYN扫描

扫描器向目标主机的一个端口发送请求连接的SYN包,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。这样,三次握手就没有完成,无法建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志中。这种扫描技术一般不会在目标主机上留下扫描痕迹。但是,这种扫描需要有root权限。

端口开放:1、Client发送SYN 2、Server端发送SYN/ACK 3、Client发送RST断开(只需要前两步就可以判断端口开放)

端口关闭:1、Client发送SYN 2、Server端回复RST(表示端口关闭)

优点:SYN扫描要比TCP Connect()扫描隐蔽一些,SYN仅仅需要发送初始的SYN数据包给目标主机,如果端口开放,则相应SYN-ACK数据包;如果关闭,则响应RST数据包;

3、NULL扫描

热心网友 时间:2022-04-18 10:38

1. 可以调用系统命令netstat
比如说22端口,查看如下有无返回
netstat -lnt | awk '$6 == "LISTEN" && $4 ~ ":2"'
2. 用socket mole, 例如
import socket;sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)result = sock.connect_ex(('你的ip',22))if result == 0: print "Port is open"else: print "Port is not open"

热心网友 时间:2022-04-18 12:12

可能是对filter的返回规则不熟悉造成的

它返回的是,筛选满足条件为True的实际变量值的迭代器,而不是True或False这两个布尔值。

注意:py2.7返回的是list列表,py3.X返回的是迭代器

这个函数的两个参数,需要解释一下
第一个参数,要求是一个函数,比如你这个自定义的带变量参数的函数prime

第二个参数,是作为你这个自定义函数的变量输入的序列或迭代器,比如你的这个range(1,100)

其实你如果想要返回布尔值
可能根本用不到filter这个函数

应该只需要把下面的列表生成器改为:

L = [ prime(i) for i in range(1,100) ]

即可实现你想要的效果

最后建议同时关注map函数

map用法与其类似

而且py2和py3返回规则也不一样

热心网友 时间:2022-04-18 14:04

import socket
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(1)
try:
sk.connect((‘IP地址’,端口号))
print(“ok”)
except Exception:
print(“Failed”)
sk.close()
1. 可以调用系统命令netstat
比如说22端口,查看如下有无返回
netstat -lnt | awk '$6 == "LISTEN" && $4 ~ ":2"'
2. 用socket mole, 例如
import socket;sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)result = sock.connect_ex(('你的ip',22))if result == 0: print "Port is open"else: print "Port is not open"或者
def check_servers(self):
logger.debug("Check honeypot servers thread start.")
cmd = "netstat -tlnp"

while (True):
try:
config_data = self.get_config_data()
agentid = config_data["agentid"]
global_par.evt_overtime = int(config_data["evt_overtime"])
global_par.evt_cycle = int(config_data["evt_cycle"])
sleep_time = config_data["heartbeat"]
time.sleep(int(sleep_time))

proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
buff = proc.communicate()
proc.stdout.close()

for server_config in agentid:
if server_config["enabled"]:
if server_config["id"] in str(buff):
logger.info("{0}:{1} server running normal.".format(server_config["service"], server_config["id"]))
else:
logger.info("{0}:{1} server running error or is starting.".format(server_config["service"], server_config["id"]))
except Exception as e:
logger.error("Check servers error:", e)

def monitor_honeypot_services(self):
try:
threading.Thread(target=self.check_servers).start()
except Exception as e:
logger.error("Monitor thread error:{0}".format(e))

self.monitor_honeypot_services()

热心网友 时间:2022-04-18 18:36

有的时候在配置服务器的时候,我们自认为某个端口已经打开的时候,结果往往不是那样的。所以我们需要一个检测工具去检测一些端口是否可以在远程成功访问,这种功能用一些端口扫描器就可以实现。但是我们这里使用python简单的几行代码就可以完成。

import socket
def TelnetPort(server_ip,port):
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(1) #设置超时时间
try:
sk.connect((server_ip,port))
print('OK!')
except Exception:
print('Telnet Failed')
sk.close()

server_ip='**********'
port=8000

TelnetPort(server_ip,port)

通过我们写的这个函数,我们就可以随意进行检测,还可以写一个循环,进行循环扫描某个范围的端口是否成功打开。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你觉得hx100在长焦机中怎样?处于什么水平? 索尼DSC-HX100显示功能 美的kfr-51lw/ y- pa1是什么故障代码 索尼DSC-HX100V基本参数 索尼DSC-HX100显示功能 索尼DSC-HX100主要参数 金龙鱼深海鱼油好不好? Y一60C81显示E5什么故障? 索尼DSCHX100质量如何 索尼DSC-HX100存储性能 如何通过端口扫描发现目标主机的状态 采用tcp syn扫描的方法进行端口扫描,存在哪些优点... Python 实现端口扫描 端口扫描一般都扫描什么漏洞?(例:接收端口)除了... 迥然不同怎么造句 什么是端口探查 “甜”能组成哪些三个字的词语? 端口扫描的基本原理 腻字怎么读 端口扫描是什么? 这道题既不像什么,也不像什么造句 端口扫描的原理是通过端口扫描确定主机开放的端口 端口扫描的基本原理是什么?端口扫描技术分哪几类? 用疲倦,真谛,卷土重来,芸芸重生造句 简述端口扫描原理 肌健 逞能 恍惚 甜腻 娴熟 进退维谷 一尘不染 略胜... 从百草园到三味书屋的词语造句 用“肌腱,逞能,恍惚,甜腻,娴熟,进退维谷,一尘... 2007年明明是土猪年,为什么说是金猪年? 斑羚飞度连词成段 词语:肌腱、逞能、恍惚、甜腻、... 什么是端口的SYN(半连接)扫描技术 黑客采用的端口扫描原理是什么,扫描工具有哪些,... 试述防火墙、入侵检测技术、网络嗅探技术及端口扫... 木马的制造原理是什么? 使用惊天远程进行IP端口扫描原理 端口扫描的工作原理 什么是端口扫描? 什么是注入和端口扫描 各有什么作用??? 充电线越长充电越慢吗 数据线的长短影响手机的充电速度吗? 充电给电瓶充电的线长短和粗细会影响充电的速度吗? 充电快慢和数据线的长短有关系吗? 手机数据线是不是越长充电就越慢? 数据线太长会影响充电的速度吗? 数据线的长短会影响充电速度吗? 充电速度与数据线有关系吗? 数据线线的长短会不会影响手机充电速度 充电线越长充电速度越慢吗 手机充电器的线长度会影响充电速度么? 手机充电速度和数据线粗细长短有关系吗?