web服务检测

Posted alben-xue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web服务检测相关的知识,希望对你有一定的参考价值。

通过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服务检测的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现简单的 Web 服务器

markdown 在Intel Nuc上设置Ubuntu Web服务器,步骤和代码片段

使用 Pygments 检测代码片段的编程语言

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

检测后退按钮但不关闭对话框片段

ini Web服务器安全性片段