首页 > 解决方案 > Python:如何创建搜索特定 IP 地址的字典列表函数

问题描述

我想创建 IP 地址列表。我想遍历字典并使用 if 条件检查 IP 地址。如果地址是瑞典语,我想将其添加到列表中。检查完字典后,我想遍历列表并打印所有瑞典 IP 地址。我究竟做错了什么?

def ipAddresses(listOfIps):   ### list of ip addresses in dictionary
    ipAddresses = {"255.255.255.0 / 21": "Suomi",
    "192.168.64.96 / 27": "Suomi",
    "32.204.65.64 / 27": "Suomi",
    "41.57.128.0 / 22": "Sweden",
    "31.204.70.96 / 27": "Suomi",
    "41.58.10.0 / 16": "Sweden",
    "31.217.192.162 / 21": "Suomi",
    "10.42.100.136 / 29": "Suomi",
    "32.100.148.0 / 24": "Suomi",
    "41.67.128.0 / 18": "Sweden",
   "10.10.10.100 / 24": "Suomi",
    "10.10.100.1 / 24": "Suomi"
    }

    for ip, country in listOfIps.items():  ## if ip address is Swedish, add it to a list
        if (country == Sweden):
            ipAddresses.append(ip,country)
        return ipAddresses


def Osio6():  ## loop through the list and print all swedish IP-addresses
    listOfIps = []
    for ipAddress in listOfIps:
        listOfIps.append(ipAddress)
    
        ipAddressList = Swedish(listOfIps)
        print ("List of Swedish IP-addresses are: \n", ipAddressList, "\n")

标签: pythonlistdictionary

解决方案


这应该可以帮助您:

ipAddresses = {
"1.172.152.0 / 21": "Finland",
"31.204.64.96 / 27": "Finland",
"31.204.65.64 / 27": "Finland",
"41.57.120.0 / 22": "Sweden",
"31.204.66.96 / 27": "Finland",
"41.58.0.0 / 16": "Sweden",
"31.217.192.0 / 21": "Finland",
"32.42.29.136 / 29": "Finland",
"32.106.148.0 / 24": "Finland",
"41.67.128.0 / 18": "Sweden",
"32.106.181.0 / 24": "Finland",
"32.106.182.0 / 24": "Finland"
}

print('-'*80 + "\nSwedish IP Addresses\n" + '-'*80)
[print(key) for key in ipAddresses.keys() if ipAddresses[key] == "Sweden"]

输出:

--------------------------------------------------------------------------------
Swedish IP Addresses
--------------------------------------------------------------------------------
41.57.120.0 / 22
41.58.0.0 / 16
41.67.128.0 / 18

推荐阅读