python实现局域网攻击_牛逼了!一行Python代码搭建一个局域网服务器

不知道大家有没有遇到过这样的情况, 在做项目或者研发的时候,迫切想要将一个文件传输给另一台电脑,却找不到U盘,于是麻烦的通过登陆qq、微信等社交软件 ,或者邮箱等工具进行传输,十分麻烦,让人苦恼。

都说Python号称无所不能,除了生孩子啥都行!于是小编今天就给大家介绍一种简单的方式来解决这一问题,通过调用Python中的http.server搭建局域网服务器,让这个问题变得So easy !

1、一行Python命令

一行Python命令如何搭建局域网,其实很简单,我们用了Python里面的一条命令就可以搞定! Python的官方手册介绍,HTTPServer 是 socketserver里TCPServer 的一个子类。

它会创建和侦听 HTTP 套接字,并将请求调度给处理程序。在Python3.7中,http.server提供了5种参数,调用下面帮助命令可显示如下:

python -m http.server --help

由上图可以看出,其包含位置参数和可选参数。位置参数 port——是指HTTP服务器所指定的端口,默认为8000

可选参数 -h/--help——用来获取帮助信息

--cgi——服务器为CGI模式

--bind/-b ADDRESS——绑定ip地址,ADDRESS为ip地址

--directory/-d DIRECTORY——指定目录,默认为当前目录(即为命令行运行的目录),简单地说,就是当前服务器可以提供被访问的目录

2、如何操作

搭建本地服务器的代码十分简单,只需要在命令行运行以下代码即可。

python -m http.server 8080

上面的代码用来启动http服务器,默认IP是电脑本地无线IPv4网络,默认目录为命令行运行的目录,如果想要改变参数,调用03种的可变参数即可。

原理的讲解到这里就结束了,接下来是实践,小编使用自己手机的热点,在ubuntu,windows以及移动端进行了测试。

1).首先要获取本地的IP

Windows平台可以通过ipconfig(Linux平台通过ifconfig -a )获取IP,注意选用的是无线局域网适配器WLAN中的IPv4地址。

2).访问服务器

上面的命令启动服务器之后,根据所得的ip和端口,在浏览器输入http://192.168.43.136:8080/即可访问服务器即可。

是不是很神奇,接着我们用不同的平台来测试一下

用PC端试一下:

用手机测试一下

其他机型windows

3、改变服务器的目录

对于改变文件目录,小编改为D盘为可访问盘,命令如下,其他参数使用方法类似。

python -m http.server 8080 -d d:

可以看到被访问的目录发生改变:

对于使用http.server搭建服务器的技巧今天就分享到这里,是不是又学到一招!使用这个python自带的小功能,便可以极为快速的搭建一个简单的http服务器,使得局域网内的设备都可以进行访问,真的很香,还等啥快来试一下吧!

### 回答1: 我可以为你写一段Python代码,用于实现局域网文件传输。import socket# 创建socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取本地主机名 host = socket.gethostname()# 设置端口号 port = 9999# 绑定端口 s.bind((host,port))# 监听连接 s.listen(5)while True: # 建立客户端连接 c, addr = s.accept() print('连接地址:', addr) # 接收文件 filecontent = c.recv(1024) # 保存文件 with open('file_name.txt','wb') as f: f.write(filecontent) f.close() print('文件接收成功!') # 关闭连接 c.close() ### 回答2: 实现局域网传递文件并运行Python代码可以通过以下步骤实现: 1. 首先,你需要确保所有主机都连接在同一个局域网下,并且具有相应的网络权限。 2. 在发送端,编写一个Python程序,使用socket模块建立一个服务器服务器程序可以监听特定端口,并在有客户端连接时接收文件。 3. 在接收端,编写另一个Python程序,使用socket模块建立一个客户端。客户端程序可以连接到发送端的服务器,并将要传递的文件发送给服务器。 4. 在接收端,可以使用类似于os模块中的文件操作函数,如open、write等,将接收到的文件保存到本地。 以下是一个简单的代码示例,其中假设发送端的IP地址是192.168.0.1,接收端的IP地址是192.168.0.2,传递的文件名为example.txt。 发送端代码: ```python import socket HOST = '192.168.0.1' PORT = 12345 def send_file(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) print('Waiting for connection...') conn, addr = s.accept() print('Connected with', addr) with open('example.txt', 'rb') as f: data = f.read() conn.sendall(data) conn.close() send_file() ``` 接收端代码: ```python import socket HOST = '192.168.0.1' PORT = 12345 def receive_file(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) with open('received_file.txt', 'wb') as f: while True: data = s.recv(1024) if not data: break f.write(data) s.close() receive_file() ``` 以上代码将会在发送端将example.txt文件发送到接收端,并在接收端将其保存为received_file.txt文件。你可以根据实际情况修改以上代码,并在每个主机上运行相应的程序进行局域网文件传递。 ### 回答3: 要实现局域网传递文件并在局域网内运行Python代码,可以使用Socket编程来实现。下面是一个简单的示例代码: 发送端代码: ```python import socket def send_file(filename, ip, port): # 创建TCP socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: # 连接目标IP和端口 sock.connect((ip, port)) # 读取文件内容并发送 with open(filename, 'rb') as file: data = file.read(1024) while data: sock.send(data) data = file.read(1024) # 发送文件结束标志 sock.send(b'EOF') finally: sock.close() # 调用发送函数 send_file('example.txt', '目标IP地址', 12345) ``` 接收端代码: ```python import socket def receive_file(filename, port): # 创建TCP socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: # 绑定IP和端口 sock.bind(('本机IP地址', port)) sock.listen(1) # 等待接收文件 conn, addr = sock.accept() with open(filename, 'wb') as file: data = conn.recv(1024) while data != b'EOF': file.write(data) data = conn.recv(1024) finally: sock.close() # 调用接收函数 receive_file('received_file.txt', 12345) ``` 在发送端代码中,`send_file`函数按照指定的IP地址和端口号创建TCP socket,然后读取文件内容并通过socket发送出去,直到文件发送完毕。最后,发送一个文件结束标志。 在接收端代码中,`receive_file`函数先创建一个TCP socket,并绑定到指定的IP地址和端口号。然后使用`sock.accept()`进行等待,直到有发送者连接上来。接收到文件内容后,将其写入文件中,直到接收到文件结束标志。 需要将代码中的IP地址和端口号替换为实际使用的值,发送端指定接收端IP地址,接收端指定本机IP地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值