web服务检测
2021-07-13 17:07
标签:cti hostname try class .com sys rip info 主机 通过python的socket模块中的getaddrinfo进行给定主机/域名的80端口探测 演示: alben@Python:~/PycharmProjects/networking$ ./getaddr.py google.cn web服务检测 标签:cti hostname try class .com sys rip info 主机 原文地址:http://www.cnblogs.com/alben-cisco/p/7077534.html#!/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)
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$