
本文共 25163 字,大约阅读时间需要 83 分钟。
Python������������
- ���������C/S���������
- ���������������
- socket������
C/S������
C������������Client(���������������)���S���������Server(���������������)������������������������������������������C/S���������������������������������������������������������������������������
���������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������https://www.processon.com/view/5b0f5d79e4b068c2520a6497)
1.������������������������������������������������������������������������������������������������������������������������/���������������������������������
2.���������������������������������������������������������������������������(������)���������������������������������������
3.������������������
4.���������������������������������������������������������������������������������������������
5.������������������������������������������������������������������������(������)���������������������������������������������������������������������
socket������
������
���������������������������������������������������������������������������������������������������TCP/IP������������������������������������������������������������������������������������������������TCP/IP���������������������������������������������������������������������������������������socket������������������������������socket������������������������������������������������������TCP/IP������������������������������������������������������������������������������������������������������������������������������������������������������������������������
socket������
���������socket���
socket���������������TCP/IP������������������������������������������������������������������������������������socket������������������������������������������������TCP/IP������������������socket���������������������������������������������������������������������
socket���������()
socket���������Unix������Unix/Linux������������������������'���������������'������������������������open-->������write/read-->������close"������������������socket���������������������������������socket������������������������������������socket���������������������������������������/���IO���������������������
������������������������������������������������������IP������������������������������������������QQ������������word���������������������������������������QQ���������������������������������������������������IP������������������������������������������������������������������������qq������������������������������port���������������������������0-65535���������������������������������������������������������������������������������������������������������������������������������������������������������������������
������()
socket������������
���������socket���������������������������������������������socket������������������������������������������������������������������������������������
socket���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������
1.������������������������2.������������������������3.���������������������������������4.���������������������5.���������������������������������������
������������
1.������������������������2.������������������������������3.������������������4.say 'hi ������������������������������������~'5.������������ --> ������������ --> ������������.......
���������������socket������
���������������socket���������������
1.���������������������������������������socket���������2.������������������������������������������IP+PORT���3.���������������������������������������������4.���������������������������������������������5.������������������������������������������������������������������
���������������socket������������
1.���������������������������������������socket���������2.���������������������������������connect ���������������IP���PORT���3.������������������4.say 'hi ������������������������������������~'���send���������������5.������������ --> ������������ --> ������������.......
socket���������������������������������()
socket���������������
socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
family(socket������)
- socket.AF_UNIX������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������socket���������
- socket.AF_INET������������AF_INET6���������ipv6��� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������AF_INET������������������������������Python������������������������������������������������������������������������������������������������������AF_INET
socket.type������
- socket.SOCK_STREAM���for TCP
- socket.SOCK_DGRAM���for UDP
- socket.SOCK_RAW���������������������������������������������������ICMP���IGMP���������������������SOCK_RAW������������������SOCK_RAW������������������������IPv4������������������������������������������������������IP_HDRINCL������������������������������IP������
- socket.SOCK_RDM���������������������UDP������������������������������������������������������SOCK_RAM���������������������������������������������������������������������������������������������������ICMP���������SOCK_RAM������������������������������������������������������������
- socket.SOCK_SEQPACKET���������������������
proto = 0 ������������������������
fileno = None ������������������������
������������������������
- s.bind()���������������������������������������������
- s.listen()���������TCP������
- s.accpet()���������������TCP���������������������������������������������������������
������������������������
- s.connect()������������������TCP������������������
- s.connect_ex()���connect()������������������������������������������������������������������������
���������������������������������
- s.recv()���������������
- s.send()������������������send���������������������������������������������������������������������������������������
- s.sendall()������������������TCP������������������������������������send���sendall������������������������������������������������������������������������������������������send���������������
- s.recvfrom()���������UDP������
- s.getpeername()������������������������TCP������������������
- s.close()������������������
- socket.setblocking(flag)���True or False���������socket������������������
- socket.getaddrinfo(host,port,family=0,type=0,proto=0,flags=0)������������������������������������
- socket.getfqdn()���������������������������
- socket.gethostbyname()���������������������IP������
socket������������
���������������������������������������������������������������������
# ���������1.���������������������������������������socket���������2.������������������������������������������������������������������������IP���������PORT���������3.���������������������������������listen���������������4.������������������accpet���������������������������5.���������������recv���send���������������������������������������6.���������������������������������������������������������close���7.������������������������������������������������# ���������1.���������������������������������������socket���������2.������������connect,���������������������IP���PORT���3.������������������send,recv���4.������������close���
���������������
import socket# 1.���������������������socket������phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 2.���������������IP���PORTphone.bind(('127.0.0.1',8082))# 3.���������������������������������������5������������������������������������������������������������������������������������phone.listen(5)print('starting.......')# 4.������������������������������������������������������������������������������������res = phone.accept()print(res) # (, ('127.0.0.1', 52690)) ������������������������������������������������������������������������������������������IP���������PORT# ������������������conn���addr���������������������������������������IP���PORTconn,addr = phone.accept()print(addr)# 5.������������������������������������recv(1024)������������������1024������������������������������������������������������1������������������������������1025������������������������������1024���������������������������������data = conn.recv(1024)print('������������������',data)# 6. ���������������������������������������������������send������������conn.send(data.upper())# 7.������������������conn.close()# 8.���������������phone.close()# ���������������������������������������������������������������������IP���PORT���������������������������������������������������������������# res = phone.accept()# print(res)
���������������
import socket# 1.������������socket������phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 2.������������������IP���PORT(���������)phone.connect(('127.0.0.1',8082))# 3.send���������������msg = input('>>>>>').strip()phone.send(msg.encode('utf-8'))# 4.recv������������������������������������������������������1KBdata = phone.recv(1024)print(data)# 5.������������phone.close()
���������������������������Python3���������������������������bytes������
���������������������������������������������
# ������������starting.......('127.0.0.1', 52885)������������������ b'admin'# ���������>>>>>admin ���������������������������������������������b'ADMIN'
������������������
������������������������������������������������������������������������������������������������������������������������������������������������������hello���������������������hello��������������������������������������������������������������������������������������������� ������������������������������������������������
���������
import socketphone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,0) # ���������������������������������������������������������������phone.bind(('127.0.0.1',8083))phone.listen(5)print('starting.......')conn,addr = phone.accept()print(addr)while True: data = conn.recv(1024) print('������������������',data) conn.send(data.upper())conn.close()phone.close()���������������������������# 1.������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# 2.���������������������������������������������������phone���������������������������������������������������������������������������������conn������������������������������������������������������������phone������������������������������������conn������������������������
���������
import socketphone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.connect(('127.0.0.1',8083))while True: msg = input('>>>>>').strip() phone.send(msg.encode('utf-8')) data = phone.recv(1024) print(data)phone.close()# ������������������������������������phone������������������������������������������������������
���������������������������������������������������������������������������while True������������������������������������������������
���������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
# ���������import socketphone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.connect(('127.0.0.1',8083))while True: msg = input('>>>>>').strip() if not msg:continue # ������������������������������������������������ phone.send(msg.encode('utf-8')) data = phone.recv(1024) print(data)phone.close()
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
# ������������������������# ���������import socketphone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.connect(('127.0.0.1',8085))while True: msg = input('>>>>>').strip() print('send msg...') # ���������msg������������ phone.send(msg.encode('utf-8')) print('before recv msg') # ������������������������ data = phone.recv(1024) print('before print data') # ������������������������������������ print(data)phone.close()# ���������������������������starting.......('127.0.0.1', 53353)������������������ b'admin'# ���������������������������>>>>>adminsend msg...before recv msgbefore print datab'ADMIN'>>>>>send msg...������������������������������������������������������������������before recv msg
������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
Traceback (most recent call last): File "D:/py_study/day20-������������/1.py", line 20, indata = conn.recv(1024)ConnectionResetError: [WinError 10054] ���������������������������������������������������
���������������������������������������������������TCP������������������������TCP���������������������������������������������������������������������������������������������������������������������������������������������������
# ���������import socketphone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,0) # ���������������������������������������������������������������phone.bind(('127.0.0.1',8085))phone.listen(5)print('starting.......')conn,addr = phone.accept()print(addr)while True: try: data = conn.recv(1024) print('������������������',data) conn.send(data.upper()) except ConnectionResetError: breakconn.close()phone.close()# ���������import socketphone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.connect(('127.0.0.1',8085))while True: msg = input('>>>>>').strip() if not msg:continue phone.send(msg.encode('utf-8')) data = phone.recv(1024) print(data)phone.close()
������SSH������
������������������������������������������������������������������������������������������������������os���subprocess���������������os.system���������������������������subprocess���������������������������������������
In [1]: import osIn [2]: res = os.system('ls') # ������������������������������������������������������������������������������������anaconda-ks.cfg apr-1.4.6 apr-1.4.6.tar.gz apr-util-1.4.1 apr-util-1.4.1.tar.gz httpd-2.4.7 httpd-2.4.7.tar.gz ������������In [3]: print(res) # ���������������������������������������������������0
import subprocessobj = subprocess.Popen('ls /tmp',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)# ������������������������������print(obj.stdout.read().decode('utf-8'))# ������������������������������print(obj.stderr.read().decode('utf-8'))������������������windows������������������������������������gbk������
���������������������������������������SSH���������������������������������������������
# ���������import socketimport subprocesssocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)socket.bind(('127.0.0.1',8880))socket.listen(5)print('starting...')conn,addr = socket.accept()while True: cmd = conn.recv(1024) # ������������ obj = subprocess.Popen(cmd.decode('utf-8'),shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) # subprocess���������������decode������ # obj.stdout.read()���������������GBK������������������������������GBK��������������������������������������������� stdout = obj.stdout.read() # ������������������������������������������ stderr = obj.stderr.read() # ������������������������������������������ print(len(stdout) + len(stderr)) # ��������������������������������� conn.send(stdout+stderr) # ������������������conn.close()socket.close()# ���������import socketsocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)socket.connect(('127.0.0.1',8880))while True: msg = input('>>>').strip() # ������������������������������ if not msg:continue # ������ socket.send(msg.encode('utf-8')) # ���UTF-8������������ data = socket.recv(1024) print(data.decode('gbk')) # ���������gbk������������windows���������������socket.close()
������������������
# ���������������������starting...1009 # ������������������������1009���# ���������������������>>>ipconfigWindows IP ������������������������ ���������: ������������ . . . . . . . . . . . . : ��������������������� ��������������� DNS ������ . . . . . . . : ������������������������ ������������* 1: ������������ . . . . . . . . . . . . : ��������������������� ��������������� DNS ������ . . . . . . . : ������������������������ WLAN: ��������������� DNS ������ . . . . . . . : hzdomain1.com ������������ IPv6 ������. . . . . . . . : fe80::fca6:24d8:1890:c8a4%4 IPv4 ������ . . . . . . . . . . . . : 10.202.102.80 ������������ . . . . . . . . . . . . : 255.255.254.0 ������������. . . . . . . . . . . . . : 10.202.102.1������������������������ ������������* 2: ��������������� DNS ������ . . . . . . . : ������������ IPv6 ������. . . . . . . . : fe80::6560:ca5a:830a:ce86%20 IPv4 ������ . . . . . . . . . . . . : 192.168.137.1 ������������ . . . . . . . . . . . . : 255.255.255.0 ������������. . . . . . . . . . . . . : ������������������ ������������������ 2: ������������ . . . . . . . . . . . . : ��������������������� ��������������� DNS ������ . . . . . . . :
���������������
# ���������starting...1009 # ���������ipconfig������������������������16226 # tasklist# ���������tasklist������������������ps aux������>>>tasklist������������ PID ��������� ������# ������������ ========================= ======== ================ =========== ============System Idle Process 0 Services 0 8 KSystem 4 Services 0 24 KRegistry 96 Services 0 18,044 Ksmss.exe 360 Services 0 488 Kcsrss.exe 532 Services 0 1,720 Kwininit.exe 640 Services 0 1,252 Kcsrss.exe 648 Console 1 2,568 Kservices.exe 712 Services 0 5,864 Klsass.exe 728 Services 0 9,596 Ksvchost.exe 844 Services 0 396 Kfontdrvhost.exe 864 Services 0 88 Ksvchost.���������������������tasklist���������������������������������������������������������������������ipconfig���������������������������������������������������1009���>>>ipconfigexe 872 Services 0 17,556 KWUDFHost.exe 920 Services 0 5,180 Ksvchost.exe 1004 Services 0 10,260 Ksvchost.exe 292 Services 0 6,140 Kwinlogon.exe 896 Console 1 3,728 Kfontdrvhost.exe 1068 Console 1 8,024 Kdwm.exe 1144 Console 1 75,552 Ksvchost.exe 1192 Services 0 14,476 Ksvchost.exe 1240 Services 0 2,984 Ksvchost.exe 1248 Services 0 1,832 Ksvchost.exe 1324 Services 0 4,492 Ksvchost.exe 1420 Services 0 4,368 Ksvchost.exe 1488 Services 0 11,732 K
���������������������������������ipconfig������������������������������tasklist���������������������������15-16������������������������������������������������������������������������������������������������������������������������
������tasklist������������������������������������������������������1024������������������������1024���������������������������������������������������IO���������������������������������������������������������������������������������������������������������������������������recv(1024)������������������������������������������������������������ifconfig������������������
������������������������������������������������recv(1024)���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������recv���������������������������������������������������������������������������8192������������������������������������������������������������������
���������������������������������������������������������������������������������������������socket���������������������������������
������������������()
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������copy������������������������������������������������������������������������������������������������������������������������������������������������������������socket���������������������������������������������������������������������������������������������������������������������������������send���������������������������TCP socket������������������������������������������������TCP������������������������������������������������������������������������
������������������������TCP���
������������������K���K������������������������������������������������������K���K������������������������������������������������3K������������������������������������������������������������������������������������������������������������������������������������������STREAM������������������������������������������������������������������������TCP���������������������������������������������������������������������������
������������TCP������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������
# ���������import socketimport subprocesssocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)socket.bind(('127.0.0.1',8801))socket.listen(5)print('starting...')conn,addr = socket.accept()print(addr)data = conn.recv(1024)print('data:',data) # ������conn.send(data.upper()) # ���������������������conn.close()socket.close()# ���������import socketsocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)socket.connect(('127.0.0.1',8801))# ������������������������������������socket.send('hello'.encode('utf-8')) socket.send('world'.encode('utf-8'))data = socket.recv(1024)print(data.decode('gbk'))socket.close()
������������������
# ���������starting...('127.0.0.1', 50506)data: b'helloworld'# ���������HELLOWORLD
������������
- 1.TCP���transport control protocol������������������������ ������������������������������������������������������������������������������������������������������������������������socket������������������������������������������������������������������������������������������������������������������Nagle������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
- 2.TCP���������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������
发表评论
最新留言
关于作者
