3

只需使用允许用户登录和/或创建帐户的 python 文件做一个基本论坛。我想我会做更多的事情,让每个用户使用他们的 IP 地址登录,然后能够使用从他们的 IP 地址生成的唯一 ID 发布,就像大多数图像板一样。

我可以很容易地编写代码,但是我很难找到如何在不使用 Flask 的情况下获取用户的 IP 地址。

编辑:这是我刚刚检查的代码,它似乎正在工作

    #!/usr/bin/python
import md5, cgi,cgitb,codecs
def Maker():
    form=cgi.FieldStorage()#for use later
    a=form.keys()#for use later
    page = 'Content-type: text/html\n\n'
    page +='<html><head><title>Test Form</title></head>\n'
    from socket import gethostname, gethostbyname 
    ip = gethostbyname(gethostname())
    page+= ip
    return page
print Maker()

编辑:该代码不起作用,仍在寻求帮助

4

3 回答 3

6

听起来您将其作为 CGI 脚本运行。用户的 IP 地址将在REMOTE_ADDR环境变量中,os.environ["REMOTE_ADDR"].

于 2013-05-15T22:06:28.120 回答
5

我认为这可能有效

from socket import gethostname, gethostbyname 
ip = gethostbyname(gethostname()) 

或者如果您使用的是 CGI,您可以从REMOTE_ADDR环境变量中获取它

于 2013-05-15T22:05:16.003 回答
0

您是否假设每个用户都有一个唯一的 IP 地址?如果是这样,这不是生成 UserID 的好方法或安全方法。在任何在线社区中,总会有一些用户通过网关或代理服务器访问您的站点,因此一些用户将拥有相同的远程 IP 地址。

您可以将一些随机数或时间戳附加到 IP 地址,或者只使用日期时间戳。但为什么不直接使用用户的电子邮件地址呢?

高温高压

于 2015-10-16T10:22:10.317 回答