首页 > Web开发 > 详细

web服务检测

时间:2017-06-25 19:30:46      阅读:276      评论:0      收藏:0      [点我收藏+]

通过python的socket模块中的getaddrinfo进行给定主机/域名的80端口探测

#!/usr/bin/env python3
#-*- encoding:utf8 -*-

import argparse,socket,sys

def connect_to(hostname_or_ip):
    try:
        infolist = socket.getaddrinfo(
            hostname_or_ip,‘www‘,0,socket.SOCK_STREAM,0,
            socket.AI_ADDRCONFIG | socket.AI_V4MAPPED | socket.AI_CANONNAME,
        )
    except socket.gaierror as e:
        print(‘Name service failure:‘, e.args[1])
    info = infolist[0]
    socket_args = info[0:3]
    address = info[4]
    s = socket.socket(*socket_args)
    try:
        s.connect(address)
    except socket.error as e:
        print(‘Network failure‘ , e.args[1])
    else:
        print(‘Success: host‘ , info[3] , ‘is listening on TCP port 80‘)

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description=‘Try connecting to port 80‘)
    parser.add_argument(‘hostname‘ , help=‘hostname that you want to contact‘)
    connect_to(parser.parse_args().hostname)

演示:

alben@Python:~/PycharmProjects/networking$ ./getaddr.py google.cn
Success: host google.cn is listening on TCP port 80
alben@Python:~/PycharmProjects/networking$ ./getaddr.py google.hk
Network failure Connection refused
alben@Python:~/PycharmProjects/networking$ ./getaddr.py sina.cn
Success: host sina.cn is listening on TCP port 80
alben@Python:~/PycharmProjects/networking$ ./getaddr.py baidu.com
Success: host baidu.com is listening on TCP port 80
alben@Python:~/PycharmProjects/networking$ ./getaddr.py localhost
Network failure Connection refused
alben@Python:~/PycharmProjects/networking$

web服务检测

原文:http://www.cnblogs.com/alben-cisco/p/7077534.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!