python 中 udp

ip地址: 

用来在网络中标记一台电脑。ip地址在本地局域网上是唯一的。

网络地址:主机地址 

主机号,表示在同一个网络上,可以拥有多少个IP 

分类:

A 类 IP 段 1.0.0.1 到 126.255.255.255 (0 段和 127 段不使用 ),可用的A类网络有126个(有126个网段),每个网络能容纳1677214个主机。

B 类 IP 段 128.0.0.0 到 191.255.255.255 ,每个网络有65564个主机

C 类 IP 段 192.0.0.0 到 223.255.255.255,每个网络中有254个主机

 

 

 

 

 

 

 

私有(内网)IP地址范围:

A类:10.0.0.0-10.255.255.255
B类:172.16.0.0-172.31.255.255
C类:192.168.0.0-192.168.255.255

用于内部网络中,一些交换机,路由器也往往使用192.168.1.1作为缺省地址,私有网络由于不与外部互连,因而只能够在内部网络中使用,如果要使用私有地址连接到Internet,需要使用NAT(网络地址转址)、使用网关代理软件、路由器,将私有地址翻译成公网的合法地址

CIDR(无类型域间选路)

例如:

1.10.100.122.2/24,24表示前面24位是网络号,后8位是主机号。里面有一个广播地址,10.100.122.255,如果发送信息给这个IP地址,这个网段中的所有主机都会收到信息。

另外一个是子网掩码,255.255.255.0,可以把子网掩码和IP地址进行AND操作,就能算出来网络地址,此IP地址的网络号为10.100.122.0。

192.168.0.X这个是常用的私有IP地址(很明显能看出来这个IP地址前面的192.168.0,这个是网络号),家里的路由器一般都是这样的,而192.168.0.1,一般是这个私有网络的出口,例如家里的路由器。而192.168.0.255这个就是广播地址,发送信息给这个地址,这个私有网段中的所有主机都会收到信息。

MAC地址

MAC地址是全局唯一的,每个网卡都有独立的一个IP地址。它更像是一个身份证,是唯一的标识。

IP地址与Mac地址的区别:

IP是地址,它有定位功能,而Mac是身份证,具有唯一性。有了它们两个就能在互联网中通信两者缺一不可。

 

端口

每个进程都会占用一个端口,端口一共有256*256。范围:0-65535 ,1023前面的端口,不可以随意使用,一般有约定的时候,如22是ssh登录端口。1024后面的,可用自己定义使用。

常用端口:

(1)HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080

(2)SOCKS代理协议服务器常用端口号:1080

(3)FTP(文件传输)协议代理服务器常用端口号:21

(4)Telnet(远程登录)协议代理服务器常用端口:23

HTTP服务器,默认的端口号为

80/tcp

HTTPS服务器,默认的端口号为

443/tcp 443/udp;

Telnet(不安全的文本传送),默认端口号为23/tcp(***Tiny Telnet Server所开放的端口);

FTP,默认的端口号为21/tcp(***Doly Trojan、Fore、InvisibleFTP、WebEx、WinCrash和Blade
Runner所开放的端口);

TFTP(Trivial File Transfer Protocol ),默认的端口号为69/udp;

SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp;

SMTP Simple Mail Transfer Protocol (E-mail),默认的端口号为25/tcp(***Antigen、Email
Password Sender、Haebu Coceda、ShtrilitzStealth、WinPC、WinSpy都开放这个端口);

POP3 Post Office Protocol (E-mail) ,默认的端口号为110/tcp;

WebLogic,默认的端口号为7001;

Webshpere应用程序,默认的端口号为9080;

webshpere管理工具,默认的端口号为9090;

JBOSS,默认的端口号为8080;

TOMCAT,默认的端口号为8080;

WIN2003远程登陆,默认的端口号为3389;

Symantec AV/Filter for MSE ,默认端口号为 8081;

Oracle 数据库,默认的端口号为1521;

ORACLE EMCTL,默认的端口号为1158;

Oracle XDB( XML 数据库),默认的端口号为8080;

Oracle XDB FTP服务,默认的端口号为2100;

MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp;

MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp;

QQ,默认的端口号为1080/udp

 

 

1、创建套接字

1 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
2 local_addr = ('', 58997)  
3 udp_socket.bind(local_addr) # 绑定端口

2、使用套接字收发数据

 udp_socket.sendto(send_data.encode("gbk"),("10.133.255.152", 8080)) # 发送给微软,使用gbk编码,一般使用utf-8编码
 # receive_date 接收到的数据是一个元祖 (b'\xc4\xe3\xba\xc3', ('10.133.255.152', 8080))
 receive_data = udp_socket.recvfrom(1204)
 # print(receive_data[0].decode("utf-8"))  # 打印元祖的第一个数据,因为使用byte传输数据,所以需要对数据进行解码
 print(receive_data[0].decode("gbk")) # 因为微软使用gbk编码,所以需要解成gbk

 

3、关闭套接字

 udp_socket.close()

 udp_socket.close()

4、如何验证消息发送接收,在微软启用网络调试助手,NetAssist.exe

 

posted @ 2022-02-11 11:52  喜欢咩咩  阅读(494)  评论(0编辑  收藏  举报