• socket模块的getaddrinfo方法详解


    getaddrinfo方法用于通过url解析dns

    其中url为域名,如 www.sharejs.com,不能带http和url地址

    import socket
    import urlparse
    
    def dns_resolver(url):
        '''
        用于多域名的DNS解析获取IP地址
        '''
        try:
            parse = urlparse.urlparse(url)
            url_new = parse.netloc
            result = socket.getaddrinfo(url_new, None)
            IP = result[0][4][0]
        except Exception as e:
            IP = ''
        return IP
    
    print dns_resolver('https://www.baidu.com/')
    

    socket.getaddrinfo(host, port[, family[, socktype[, proto[, flags]]]])

    返回值:[(family, socktype, proto, canonname, sockaddr)]有元组组成的列表,元组里面包含5个元素,其中sockaddr是(host,port)

    • family: 表示socket使用的协议簇。常用的协议簇包括AF_UNIX(本机通信)/AF_INET(TCP/IP协议簇中的IPv4协议)/AF_INET6(TCP/IP协议簇中的IPv4协议)。在python的socket包中,用1表示AF_UNIX,2表示AF_INET,10表示AF_INET6。
    • sockettype:表示socket的类型。常见的socket类型包括SOCK_STREAM(TCP流)/SOCK_DGRAM(UDP数据报)/SOCK_RAW(原始套接字)。其中,SOCK_STREAM=1,SOCK_DGRAM=2,SOCK_RAW=3
    • proto:顾名思义,就是指定协议。套接口所用的协议。如调用者不想指定,可用0。常用的协议有,IPPROTO_TCP(=6)和IPPTOTO_UDP(=17),它们分别对应TCP传输协议、UDP传输协议。
  • 相关阅读:
    帮Netpole Review了一下RichEditor控件
    WawaKMv1命名空间.rtf
    WawaKMV1需求变更.rtf
    WawaKMV1技术难点.rtf
    WawaKMV1工具栏设计.rtf
    通讯录相关需求分析
    WawaKMV1Urtal Recall分析.rtf
    WawaKM:关于批量抓图的需求分析及设计
    图片相关的需求分析
    蛙蛙郑重推荐您使用firefox浏览器
  • 原文地址:https://www.cnblogs.com/luxiaojun/p/6259638.html
Copyright © 2020-2023  润新知