Python 网络编程:十则实用的网络通信脚本

2024-12-30 15:51:28   小编

Python 网络编程:十则实用的网络通信脚本

在当今数字化的时代,网络通信变得至关重要。Python 作为一种强大且灵活的编程语言,为网络编程提供了丰富的工具和库。以下为您介绍十则实用的 Python 网络通信脚本。

1. 简单的 HTTP 请求脚本

使用 requests 库,可以轻松发送 HTTP 请求并获取响应。

import requests

response = requests.get('https://www.example.com')
print(response.text)

2. 端口扫描脚本

通过遍历端口范围,检查端口是否开放。

import socket

def scan_port(host, port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(1)
    result = s.connect_ex((host, port))
    if result == 0:
        print(f'Port {port} is open')
    s.close()

for port in range(1, 1024):
    scan_port('127.0.0.1', port)

3. TCP 服务器脚本

实现一个简单的 TCP 服务器,接收客户端连接和数据。

import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 5000))
server_socket.listen(1)

client_socket, addr = server_socket.accept()
data = client_socket.recv(1024)
print(f'Received: {data.decode()}')
client_socket.close()
server_socket.close()

4. UDP 客户端脚本

发送和接收 UDP 数据包。

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('127.0.0.1', 5001)

message = b'Hello, UDP!'
client_socket.sendto(message, server_address)

data, addr = client_socket.recvfrom(1024)
print(f'Received: {data.decode()}')
client_socket.close()

5. 网络文件传输脚本

利用套接字实现文件在网络中的传输。

import socket, os

def send_file(file_path, host, port):
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client_socket.connect((host, port))

    file_size = os.path.getsize(file_path)
    client_socket.send(str(file_size).encode())

    with open(file_path, 'rb') as file:
        while True:
            data = file.read(1024)
            if not data:
                break
            client_socket.send(data)
    client_socket.close()

send_file('/path/to/file.txt', '127.0.0.1', 5002)

6. 邮件发送脚本

使用 smtplib 库发送电子邮件。

import smtplib
from email.mime.text import MIMEText

def send_email(subject, body, to_email):
    msg = MIMEText(body)
    msg['Subject'] = subject
    msg['From'] = 'your_email@example.com'
    msg['To'] = to_email

    server = smtplib.SMTP('smtp.example.com', 587)
    server.starttls()
    server.login('your_email@example.com', 'your_password')
    server.sendmail('your_email@example.com', to_email, msg.as_string())
    server.quit()

send_email('Test Email', 'This is a test email.', 'recipient@example.com')

7. 网络爬虫脚本

抓取网页内容。

import requests
from bs4 import BeautifulSoup

response = requests.get('https://www.example.com')
soup = BeautifulSoup(response.text, 'html.parser')
for link in soup.find_all('a'):
    print(link.get('href'))

8. 远程控制脚本

通过网络实现对远程设备的简单控制。

import socket

def control_device(command, host, port):
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client_socket.connect((host, port))
    client_socket.send(command.encode())
    response = client_socket.recv(1024).decode()
    print(response)
    client_socket.close()

control_device('start', '127.0.0.1', 5003)

9. 实时聊天脚本

基于套接字实现简单的实时聊天应用。

import socket, threading

def receive_messages(client_socket):
    while True:
        data = client_socket.recv(1024)
        print(data.decode())

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 5004))

thread = threading.Thread(target=receive_messages, args=(client_socket,))
thread.start()

while True:
    message = input('Enter message: ')
    client_socket.send(message.encode())

10. 网络监控脚本

监测网络连接状态和性能。

import psutil

def monitor_network():
    network_info = psutil.net_io_counters()
    print(f'Bytes Sent: {network_info.bytes_sent}')
    print(f'Bytes Received: {network_info.bytes_recv}')

monitor_network()

这些实用的 Python 网络通信脚本为您在网络编程领域提供了丰富的示例和起点,帮助您更深入地理解和应用网络通信技术。

TAGS: Python 网络编程 网络编程技巧 实用网络通信脚本 Python 通信技术

欢迎使用万千站长工具!

Welcome to www.zzTool.com