3.scoket 网络编程技术(实战)
大约 1 分钟学习笔记测试开发测试工具开发
一、端口扫描的原理
端口扫描原理 : 尝试与目标主机建立连接,如果目标主机有回复则说明端口开放。
TCP 连接 : 通过使用三次握手 与目标主机建立标准的 tcp 连接。这种方法更容易被发现,被目标主机记录。
实现简单,对操者权限没有严格要求
二、设计方案规划
- 建立 TCP 连接
- 查看连接返回
- 判断连接返回值
- 循环扫描剩余端口
三、代码实现功能
socket(family,tupe)
family
: 代表家族地址。可为AF_INET
或者AF_UNIX
AF_INET
: 包含 Internet 地址AF_UNIX
: 用于同一台机器上的进程间的通信。
type
: 代表 套接字 类型。 可为SOCK_STREAM
或者SOCK_DGRAM
SOCK_STREAM
: 流套接字, 也叫 TCP 套接字SOCK_DGRAM
: 数据报套接字, 也叫 UDP 套接字
默认为
family = AF_INET
type = SOCK_STREAM
客户端 套接字
s.connect()
: 主动初始化 TCP 服务器连接。- 一般 address 的格式 元组(hostname,port),如果连接出错,返回 socket.error 错误
s.connect_ex()
: connect() 函数的扩展版本,出错时返回出错码,而不是抛出异常。