利用Python进行端口扫描

利用Python进行端口扫描 - Dahlhin - 博客园 https://www.cnblogs.com/dachenzi/p/8676104.html

 

Python实现对一个网络段扫描及端口扫描 - GG_Killer的博客 - CSDN博客 https://blog.csdn.net/GG_Killer/article/details/53637422

python实现局域网ip地址扫描 - 晴天的专栏 - CSDN博客 https://blog.csdn.net/rain_qingtian/article/details/42346045

 python实现扫描局域网指定网段ip - pg的博客 - CSDN博客 https://blog.csdn.net/qq_30650153/article/details/82289785

 

1、

获取路由器ip和端口

'''
Python 扫描内网所有机器端口
'''
import socket


def main():
# 定义一个变量来接收输入的开始IP
ip_start = input('请输入开始的IP地址(默认为本机IP):')
# 如果IP为空则设置开始IP和结束IP
if ip_start == '':
ip_start = socket.gethostbyname(socket.gethostname())
ip_end = socket.gethostbyname(socket.gethostname())
# 开始IP不为空则设置结束IP
else:
ip_end = input('请输入结束IP(默认为本机IP):')
# 如果IP结束地址为空则设置结束IP地址
if ip_end == '':
ip_end = socket.gethostbyname(socket.gethostname())

# 定义一个变量来接收需要扫描的端口
s = input('请输入目标主机端口,(默认扫描常用端口)')
# 如果接收的端口变量为空,则设置默认扫描开始端口
if s == '':
portlist = [21, 22, 23, 80, 135, 139, 445, 1433, 1502, 3306, 3389, 8080, 9015]
# 如果接收的端口变量不为空,则设置结束端口
else:
# 将接收的端口s转换成int型变量
startport = int(s)
# 定义一个变量接收结束端口
s = input('请输入目标主机结束端口:(默认:65535)')
# 如果结束端口为空,则设置默认结束端口为65535
if s == '':
endport = 65535
# 默认端口不为空,则将接收到的端口字符转换成int型
else:
# 将结束端口s变量转换为int型
endport = int(s)
# 用range()函数生成开始端口到结束端口列表
portlist = [i for i in range(startport, endport + 1)]
# 获取IP地址的前三部分,并转换成字符串
pre_ip = '.'.join(ip_start.split('.')[:-1])
# 获取开始IP的最后部分,并转换成整数类型
start = int(ip_start.split('.')[-1])
# 获取结束IP的最后部分,并转换为整数类型
end = int(ip_end.split('.')[-1])
# 从起始IP最后数字到结束IP最后数字加一遍历
for i in range(start, end + 1):
# IP的前三部分加小圆点加最后部分,组合成IP
ip = pre_ip + '.' + str(i)
for port in portlist:
try:
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(0.1)
sk.connect((ip, port))
sk.settimeout(None)
print('Server %s port %d ok!' % (ip, port))
sk.close()
# 结果保存在文件中
f = open("IP_Port.txt,", 'a')
f.write(ip + ' : ' + str(port) + '\n')
f.close()
except Exception:
# print('Server %s port %d Not ok!'%(ip,port))
# print('*',end=' ')
pass


if __name__ == '__main__':
# 调用main()函数
main()



 2、路由器http

    1. Request URL:
      http://192.168.1.1/
    2. Request Method:
      POST
    3. Status Code:
      200 OK
    4. Remote Address:
      192.168.1.1:80
    5. Referrer Policy:
      no-referrer-when-downgrade
  1. Response Headersview source
    1. Cache-Control:
      no-cache
    2. Connection:
      close
    3. Content-Type:
      application/json
    4. Expires:
      0
    5. Transfer-Encoding:
      chunked
  2. Request Headersview source
    1. Accept:
      application/json, text/javascript, */*; q=0.01
    2. Accept-Encoding:
      gzip, deflate
    3. Accept-Language:
      en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
    4. Connection:
      keep-alive
    5. Content-Length:
      54
    6. Content-Type:
      application/json; charset=UTF-8
    7. Host:
      192.168.1.1
    8. Origin:
      http://192.168.1.1
    9. Referer:
      http://192.168.1.1/
    10. User-Agent:
      Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36
    11. X-Requested-With:
      XMLHttpRequest
  3. Request Payloadview source
    1.  
      1. {method: "do", login: {password: "34KR3M7N9TefbwK"}}
        1. login: {password: "34KR3M7N9TefbwK"}
        2. method: "do"

 

posted @ 2018-11-30 13:48  papering  阅读(237)  评论(0编辑  收藏  举报