Socket
服务端Socket和客户端Socket。当创建了一个服务器端的Socket,这个Socket就会在本机的一个端口上等待连接,客户端Socket会访问这个端口,当两者完成了连接之后,就可以进行交互了。
使用Socket建立服务器端的思路是首先实例化一个Socket类,然后开始循环监听这个端口,一直可以接收到来自客户端的连接。成功建立连接后,接受客户端的数据,并在想客户端发送数据,传送完毕后,关闭本次链接。
使用Socket建立客户端的思路相比较而言更为简单,在实例化一个Socket类之后,连接一个远程的IP地址加端口,成功建立连接后,开始发送和接收数据,传输完毕之后,关闭本次链接。
Socket的实例化
Socket的实例化格式为:
socket{family,type [,protocal]}
其中,三个参数中的family就是要使用地址族。常用的地址族有AF_INET、AF_INET6、AF_LOCAL、AF_ROUTE等。默认值为socket.AF_INET,通常使用默认值即可。
如果要实例化一个TCP类型的Socket,就可以使用如下语句。
s=socket.socket()
python-nmap
python-nmap是一个可以帮助使用nmap功能的python模块文件。在pytrhon-nmap模块的帮助下,可以轻松地在自己地程序中使用nmap扫描地结果,也可以编写程序自动化地完成扫描任务。
如果希望在Python中正常使用python-nmap模块,必须先在系统中安装Nmap。因为这个模块文件会调用Nmap的一些功能。目前在kali的环境里面已经安装好了Nmap。然后这个模块的安装在linux下则需要使用如下命令:
sudo apt-get install nmap //安装nmap
然后安装python-nmap
sudo pip install python-nmap
安装成功后,打开一个终端,启动Python,然后导入Nmap模块
在kali机子中解压,然后进入该文件内。
输入命令:python setup.py install
至此python-nmap模块的安装已经结束了。
怎样使用python-nmap模块?
PortScanner类
包含的函数如下:
scan()函数:这个函数的完整形式为
scan(self,hosts=’127.0.0.1’,ports=None,arguments=’-sV’,sudo=False),用来对指定目标进行扫描,其中需要设置的三个参数包括hosts、ports、arguments。
这里的参数hosts的值为字符串类型,表示要扫描地主机ÿ