首页 > 解决方案 > 需要从 ip-ranges 文件中获取 Amazon S3 部分

问题描述

我正在尝试从下面的站点获取 ip 我能够使用 python beautiful soup 获取整个站点并使用 python regex 模块来获取 ip4 地址,但我遇到了一个问题,我只需要 ipv4 ip 在它说的部分“ S3" 任何帮助将不胜感激

https://ip-ranges.amazonaws.com/ip-ranges.json

akamai_feed = urlopen('https://ip-ranges.amazonaws.com/ip-ranges.json').read() 
soup = BeautifulSoup(akamai_feed, 'html.parser')
ip_addr = re.findall(r'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}.\b', soup.get_text())

标签: pythonregexbeautifulsoup

解决方案


此提要是 Json 文件,因此您可以使用jsonPython 标准库中的模块:

from urllib.request import urlopen
import json

akamai_feed = json.loads( urlopen('https://ip-ranges.amazonaws.com/ip-ranges.json').read() )

for prefix in akamai_feed['prefixes']:
    if prefix['service'] == 'S3':
        print(prefix['ip_prefix'])

印刷:

...

52.95.163.0/24
52.95.145.0/24
52.92.40.0/21
52.219.32.0/21
52.95.136.0/23
52.219.62.0/23
52.95.175.0/24

... and so on

推荐阅读