gpt4 book ai didi

python sys.stdin.read() 不需要的拆分

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:20 25 4
gpt4 key购买 nike

我正在尝试制作一个脚本,我可以通过管道将 IP 地址传输到该脚本并让它返回 geoip 位置。当我尝试这个时,它看起来像是一次将每个 IP 地址拆分为 1 个字符,并且在尝试运行 iplookup() 时失败

#!/usr/bin/env python
import sys
from geoip import geolite2
def iplookup(srcip):
for ip in srcip:
print(ip)
try:
print(geolite2.lookup(ip))
except:
print("oops")
pass


source = sys.stdin.read()
iplookup(source)

回显数据样本(将来我想从 tail -f fast.log 来)命令只提取 IP 地址

[root@suricata py]# echo "05/20/2015-15:57:34.607470 [**] [1:2020702:2] ET DOS Bittorrent 用户代理入站 - 可能的 DDOS [** ] [分类:尝试拒绝服务] [优先级:2] {TCP} 8.8.8.8:2039 -> 1.1.1.1:80"| grep -oE '((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0 -9][0-9]?|2[0-4][0-9]|25[0-5])' | python mygeoip.py

8
oops
.
oops
8
oops
.
oops
8
oops
.
oops
8
oops

等...

最佳答案

sys.stdin.read() 给你一个字符串,如果你有逗号分隔的 IP 地址,做这样的事情

source = sys.stdin.read()
for ip in source.split(","):
print(geolite2.lookup(ip))

关于python sys.stdin.read() 不需要的拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30378504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com