Python渗透测试编程基础——Socket网络编程

目录

一、socket编程简介

二、UDP编程

1.介绍

2.UDP编程socket方法说明

3.UDP编程实例

(1)服务端UDP_Server程序

(2)客户端UDP_Clinet程序

三、TCP编程

1.介绍

2.TCP编程socket方法说明

3.TCP编程实例

(1)服务端程序TCP_server

(2)客户端服务端程序TCP_client

4.TCP编程扩展

5.Python其他 Internet 模块

四、反弹shell

(1)客户端(黑客)

(2)服务端(目标)


一、socket编程简介

Socket又称"套接字",是计算机间进行网络通信的一套程序接口。

套接字:IP+端口

Socket通信是基于客户端/服务器结构(C/S),可隐藏复杂的TCP/IP协议族,只要遵循Socket的规定就可以进行网络程序开发,简单且开发效率高。

Python中的socket模块,提供了套接字编程的大部分功能。支持使用UDP和TCP协议进行网络通信。

二、UDP编程

1.介绍

UDP属于无连接协议,在向接收方发送信息时不需要建立连接,而是直接发送即可。

UDP的应用:域名系统;视频流;IP语音等。

UDP编程流程及常用的

socket模块方法如图所示。

2.UDP编程socket方法说明

①socket.socket([family[, type[, proto]]]): 创建Socket对象

family

说明

socket.AF_ INET

IPv4协议

socket.AF_ INET6

IPv6协议

socket.AF_UNIX

只能够用于单一的Unix系统进程间通信

type

说明

socket.SOCK_STREAM

流式socket , for TCP

socket.SOCK_DGRAM

数据报式socket , for UDP

socket.SOCK_RAW

原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头。

socket.SOCK_SEQPACKET

可靠的连续数据包服务

proto

一般不填,默认为0

②bind(address):绑定地址

③sendto(string,address):发送数据把string发送给指定的address。其中address格式为(接收方IP地址,端口号)。address用元组表示(ip,port)

④recvfrom(bufsize[,flags]): 接收数据

bufsize 指定要接收的最大数据量。flag 提供有关消息的其他信息,通常可以忽略。

返回值是元组(data,address)。data为接收的字节串,address是数据发送方的套接字地址。

注意:socket在发送数据时,数据类型为字节串,发送时需将字符串转换为字节串,接收时需要将字节串转换为字符串。

⑤close{}关闭套接字

3.UDP编程实例

要求:基于UDP协议,使用socket编写编写一个服务端程序UDP_server.py,一个客户端程序UDP_client.py,实现客户端和服务端间的通信。

(1)服务端UDP_Server程序

import socket
# 1.创建s
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值