ip和port

ip与端口

A类IP地址:
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是”0”
地址范围 1.0.0.1-126.255.255.254
可用的A类网络有126个,每个网络能容纳1677214个主机
B类IP地址:
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是”10”
地址范围 128.1.0.1-191.255.255.254
可用的B类网络有16384个,每个网络能容纳65534个主机
C类IP地址:
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是”110”
地址范围 192.0.1.1-223.255.255.254
可用的C类网络可达2097152个,每个网络能容纳254个主机
D类IP地址:
D类IP地址第一个字节以”1110”开始,它是一个专门保留的地址
它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中
多点广播地址用来一次寻址一组计算机
地址范围 224.0.0.1-239.255.255.254
E类IP地址:
以”1111”开始,为将来使用保留,仅作实验和开发用

私有IP:
用于局域网
地址范围 10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255

回路测试:
127.0.0.1-127.255.255.255用于回路测试
测试本机中配置的Web服务器

ifconfig: 查看本机ip地址

ping: 测试远程主机连通性
域名或IP地址都行

sudo ifconfig 网卡名 down/up: 关闭/开启网卡

control+a: 回到行首
control+e: 回到行尾

DHCP: 动态主机分配协议
sudo dhclient # 重新分配IP地址

IPv4: 第四代Internet protocol
IPv6: 第六代

端口(port): 用于程序收发网络数据
在Linux系统中,端口有65536(2的16次方)个
知名端口(Well Known Ports):
范围从0-1023
动态端口(Dynamic Ports):
范围从1024-65535,当程序关闭时,分配各程序的端口也就释放了
查看端口:
“netstat -an”

网络通信三要素:
ip
port
协议

答:答复:以下是一个python3.9以上版本的代码:import threading import requests import redef read_ip_port(filename): """读取zubo_ip_port1.txt文件中的IP: port列表,如果没有冒号,则默认将端口设置为80""" ips = [] with open(filename, 'r') as f: for line in f.readlines(): line = line.strip() if line == '': continue ip_port = line.split(':') if len(ip_port) == 1: ip_port.append('80') ips.append(ip_port) return ipsdef check_ip(ip_port): """检查IP是否合理以及http://ip:port/status检查状态码是否为200""" ip, port = ip_port url = 'http://{}:{}/status'.format(ip, port) r = requests.get(url) if r.status_code == 200 and not r.url.startswith('http://'): return url else: return Nonedef check_d_segment(ips): """根据每个IP生成该IP所在D段所有的IP:portport是固定跟随IP的,生成该IP :port 所在 D 段所有IP :port""" ips_d = [] for ip in ips: ip_d = re.sub(r'(\d+)\.(\d+)\.(\d+)\.(\d+)', r'\1.\2.\3.\4', ip[0]) for i in range(1,255): ip_d_port = '{}.{}:{}'.format(ip_d, i, ip[1]) ips_d.append(ip_d_port) return ips_ddef save_200_urls(ips, filename): """对每个http://ip:port/status检测状态码是否为200,显示出为200的且无跳转的网址,去重后,保存符合条件的网址到zubo_200_d.txt文件中""" f = open(filename, 'w') for ip in ips: url = check_ip(ip) if url: f.write(url + '\n') f.close()def check_c_segment(ips, thread_num): """根据非200状态IP,生成该IP所在C段所有的IP:port,进行http://ip:port/status检测状态码是否为200,显示出为200的且无跳转的网址,去重后,保存符合条件的网址到zubo_200_c.txt文件中""" ips_c = [] # 根据非200状态IP,生成该IP所在C段所有的IP:port for ip in ips: ip_c = re.sub(r'(\d+)\.(\d+)\.(\d+)\.(\d+)', r'\1.\2.\3.0', ip[0]) for i in range(1,255): ip_c_port = '{}.{}:{}'.format(ip_c, i, ip[1]) ips_c.append(ip_c_port) # 分配线程 thread_list = [] for i in range(thread_num): t = threading.Thread(target=save_200_urls, args=(ips_c[i::thread_num], 'zubo_200_c.txt')) thread_list.append(t) # 开启线程 for t in thread_list: t.start() # 等待线程结束 for t in thread_list: t.join()if __name__ == '__main__': ips = read_ip_port('zubo_ip_port1.txt') ips_d = check_d_segment(ips) save_200_urls(ips_d, 'zubo_200_d.txt') check_c_segment(ips, 10)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值