socket套接字

一、最简单方法

import socket

hostname = 'www.baidu.com'
print(socket.gethostbyname(hostname))

二、函数封装

import socket
import sys

def get_host_ip(hostname):
    return socket.gethostbyname(hostname)

def main():
    hostname = sys.argv[1]
    ip = get_host_ip(hostname)
    print(hostname + ':' + ip )

if __name__ == '__main__':
    main()

三、类封装

import socket
import sys


class GetHostIP(object):
    def __init__(self,hostname):
        self.hostname = hostname
        
    def GetHostIp(self):
        return socket.gethostbyname(self.hostname)

def main():
    print(GetHostIP(sys.argv[1]).GetHostIp())

if __name__ == '__main__':
    main()

四、套接字初始化

import socket
import sys


class PortScanner(object):
    def __init__(self,ip,ports):      //初始化对象
        self.ip = ip
        self.ports = ports
        
    def scan(self):
        for port in self.ports:      //遍历端口
            s = socket.socket()      //实例化对象
            try:
                s.connect((self.ip,port))      //建立连接
                print('Port Found:' + str(port))      //连接成功打印
                s.close()
            except:
                pass
                
def main():
    ports = [135,445,5357]                  //要扫描的端口
    ps = PortScanner(sys.argv[1],ports)     //创建对象,初始化IP和端口
    ps.scan()                              //调用对象方法

if __name__ == '__main__':
    main()

posted @ 2020-12-03 11:05  lnterpreter  阅读(89)  评论(0编辑  收藏  举报