微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

试图找出 IP 的 python 程序中的无效语法错误

如何解决试图找出 IP 的 python 程序中的无效语法错误

我在编码方面没有任何经验,但想让这段代码在这里工作:


import re
import sys
import json
import GeoIP
import urllib
import string
import requests

gi = GeoIP.open("GeoLiteCity.dat",GeoIP.GEOIP STANDARD)
r = requests.get('http://lichess.org/stream',stream=True)

buff = ''
pattern = re.compile(sys.argv[1] + '.{30}')
for content in r.iter content():
    if content:
        buff = buff + content
        if len(buff) > 1000:
            result keys = re.findall(pattern,buff)
            for el in result keys:
                result = string.split(el)
                print result[0],result[1],result[2][:-8],gi.record by addr(result[2][:-8])['country name'],gi.record by addr(result[2][:-8])['region name'],gi.record by addr(result[2][:-8])['city'] 
            buff = buff[-30:]


编译器告诉我在第 9 行有无效的语法,它说 STANDARD。

我在名为 lichess.org 的国际象棋网站上查找了代码,以根据游戏的 ID 找出用户的 IP 地址。鉴于此代码是 7 年前发布的,并且 lichess 更改了某些内容,因此我认为需要进行一些更改。

我发现这个线程的 OP 也给出了这个建议:

用法:getip.py owlc08je

其中 getip.py 您的脚本名称,“owlc08je” - 游戏 ID。如果有人在这个游戏中移动,他的 ip、国家和城市会打印到控制台。

然而,它不起作用。

提前致谢

带下划线和更改的编辑代码



import re
import sys
import json
import GeoIP
import urllib
import string
import requests

gi = GeoIP.open("GeoLiteCity.dat",GeoIP.GEOIP_STANDARD)
r = requests.get('http://lichess.org/stream',stream=True)

buff = ''
pattern = re.compile(sys.argv[1] + '.{30}')
for content in r.iter_content():
    if content:
        buff = buff + content
        if len(buff) > 1000:
            result_keys = re.findall(pattern,buff)
            for el in result_keys:
                result = string.split(el)
                print(result[0],gi.record_by_addr(result[2][:-8])['country name'],gi.record by addr(result[2][:-8])['city'])
            buff = buff[-30:]

解决方法

我认为您在 GEOIP 和 STANDARD 之间缺少下划线。

用这个替换第 9 行应该可以解决问题:

gi = GeoIP.open("GeoLiteCity.dat",GeoIP.GEOIP_STANDARD)

编辑:

如其中一条评论所述,如果还有其他地方省略了下划线;这应该可以解决问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。