Python 套接字的使用 (1)

获取设备名称和IPv4地址


socket.gethostname()
socket.gethostbyname(host_name)
 
1 def print_machine_info():
2     host_name = socket.gethostname();
3     ip_address = socket.gethostbyname(host_name)
4     print (‘host_name : ‘,host_name)
5     print (host_name,‘\‘IP : ‘,ip_address)

获取远程设备的IP地址


socket.gethostbyname(remote_host)
1 def get_remote_machine_info(remote_host):
2     try:
3         ip_address = socket.gethostbyname(remote_host)
4         print (remote_host,‘\‘IP : ‘,ip_address)
5     except (socket.error) as err_msg:
6         print (remote_host,err_msg)

通过指定的端口和协议找到服务名



socket.getservbyport(port)

1 def find_service_name():
2     for port in [80,25,53,22]:
3         service = socket.getservbyport(port)
4         print (service)

附上一张常用端口图  常用计算机端口


inet_aton

inet_ntoa

将IPv4地址转换成不同的格式(32位二进制)

ntohl()

htonl()


主机字节序和网络字节序之间的相互转换

n(network),l(long),s(short)

时间: 2024-10-23 15:56:07

Python 套接字的使用 (1)的相关文章

Python套接字

1.客户端/服务器架构 什么是客户端/服务器架构?对于不同的人来说,它意味着不同的东西,这取决于你问谁以及描述的是软件还是硬件系统.在这两种情况中的任何一种下,前提都很简单:服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的"服务".它存在唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待更多请求.另一方面,客户端因特定的请求而联系服务器,并发送必要的数据,然后等待服务器的回应,最后完成请求或给出故障的原因.服务器无限地运行下去,并不断地处理请求:而客户

Python 套接字socketserver网络编程

为什么使用socketserver 虽然Python内置的socket和threading模块能实现简单的多线程服务器,在非正式环境,随便用用还是可以的,但是如果要在生产环境中使用,那是万万不够的. Python考虑得很周到,为了满足我们对多线程网络服务器的需求,提供了"socketserver"模块.socketserver在内部使用IO多路复用以及多线程/进程机制,实现了并发处理多个客户端请求的socket服务端.每个客户端请求连接到服务器时,socketserver服务端都会创建

2017.07.12 Python网络编程之使用多路复用套接字I/O

1.在本章开始之前,需要先理解同步与异步,阻塞与非阻塞的区别: "阻塞"与"非阻塞"与"同步"与"异步"不能简单的从字面理解,提供一个从分布式系统角度的回答.1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回.但是一旦调用返回,就得到返回值了.换句话

2017.07.09 Python网络编程之重用套接字地址

1.重用套接字地址: # -*- coding: UTF-8 -*-# 如果在某个端口上运行一个Python套接字服务器,连接一次后便终止了运行,就不能在使用这个端口了# !usr/bin/env python# Python Network Programming Cookbook --Chapter -1# This program is optimized for Python 2.7# It may run on any other version with/without modifi

python使用原始套接字 解析原始ip头数据

使用底层套接字解码底层流量,是这次做的重点工作. 首先来捕获第一个包 # coding:utf-8import socket # 监听的主机IP host = "192.168.1.100" socket_protocol = socket.IPPROTO_ICMP sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol) sniffer.bind((host, 0)) sniffer.setso

Python学习-15.Python的中的套接字socket

Python应用最广泛的要数web方面了.因此,socket显得十分重要. 要使用socket,必须引入socket模块,因此在Python脚本开头先写入 1 import socket 学过socket的都知道,就是客户端和服务端的通信. 因此新建client.py和server.py文件. 先编写server.py文件: 1 import socket 2 3 # 创建 TCP 协议的套接字. 4 server = socket.socket(socket.AF_INET,socket.SO

Python网络编程(二)通过ThreadingMixIn实现多线程异步套接字程序

使用ThreadingMixIn类的特点: 在线程间共享应用的状态,与使用ForkingMixIn类相比避免进程间通信的复杂操作. 代码如下: 1 #! /usr/bin/python 2 3 import os 4 import socket 5 import threading 6 import SocketServer 7 8 SERVER_HOST = 'localhost' 9 SERVER_PORT = 0 10 BUF_SIZE = 1024 11 12 def client(ip

Python网络编程——修改套接字发送和接收的缓冲区大小

很多情况下,默认的套接字缓冲区大小可能不够用.此时,可以将默认的套接字缓冲区大小改成一个更合适的值. 1. 代码 1 # ! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import socket 5 6 # 设置发送缓冲域大小 7 SEND_BUF_SIZE = 4096 8 # 设置接收缓冲域大小 9 RECV_BUF_SIZE = 4096 10 11 12 def modify_buff_size(): 13 # 创建TCP soc

Python网络编程——处理套接字错误

在网络应用中,经常会遇到这种情况:一方尝试连接,但另一方由于网络媒介失效或者其他原因无法响应. Python的Socket库提供了一个方法,能通过socket.error异常优雅地处理套接字错误. 1. 代码及相关解释 1 # ! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # 处理套接字错误 4 5 import argparse 6 # python用于解析命令行参数和选项的标准模块 7 import sys 8 import socket