1. 程式人生 > >web服務檢測

web服務檢測

ice projects service python3 info scrip odin ont inf

通過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)

演示:

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

web服務檢測