单元测试Shodan d

2024-04-26 22:58:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想测试Shodan的数据。数据包括时间戳、爬虫ID、服务器操作系统等字段。这些内容在每次请求时都会更改。哇,我应该测试一下吗?你知道吗

Shodan JSON数据:

{
    "city": "Mountain View",
    "region_code": "CA",
    "os": null,
    "tags": [],
    "ip": 134744072,
    "isp": "Google",
    "area_code": 650,
    "dma_code": 807,
    "last_update": "2017-03-04T13:54:57.176297",
    "country_code3": "USA",
    "country_name": "United States",
    "hostnames": [
        "google-public-dns-a.google.com"
    ],
    "postal_code": "94035",
    "longitude": -122.0838,
    "country_code": "US",
    "ip_str": "8.8.8.8",
    "latitude": 37.385999999999996,
    "org": "Google",
    "data": [
        {
            "_shodan": {
                "options": {},
                "id": null,
                "module": "dns-udp",
                "crawler": "122dd688b363c3b45b0e7582622da1e725444808"
            },
            "hash": -553166942,
            "os": null,
            "opts": {},
            "ip": 134744072,
            "isp": "Google",
            "port": 53,
            "hostnames": [
                "google-public-dns-a.google.com"
            ],
            "location": {
                "city": "Mountain View",
                "region_code": "CA",
                "area_code": 650,
                "longitude": -122.0838,
                "country_code3": "USA",
                "country_name": "United States",
                "postal_code": "94035",
                "dma_code": 807,
                "country_code": "US",
                "latitude": 37.385999999999996
            },
            "timestamp": "2017-03-04T13:54:57.176297",
            "domains": [
                "google.com"
            ],
            "org": "Google",
            "data": "\nRecursion: enabled",
            "asn": "AS15169",
            "transport": "udp",
            "ip_str": "8.8.8.8"
        }
    ],
    "asn": "AS15169",
    "ports": [
        53
    ]
}

我的测试文件:

def test_shodan_api():
    assert shodan_data == ???

Tags: 数据ipcomviewcitydatadnsgoogle
1条回答
网友
1楼 · 发布于 2024-04-26 22:58:00

我假设您希望将实际接收的数据与屏蔽数据进行比较,并无意中发现每个调用中的某些部分(时间戳)不同,因此您的完整数据永远不会与屏蔽数据完全匹配。你知道吗

我建议从屏蔽数据和接收数据中删除时间戳,并比较其余数据:

del received_data['last_update']
del canned_data['last_update']  # you probably want to do this prior to canning the data ;-)

assert_equal(received_data, canned_data)

相关问题 更多 >