2013-05-15 67 views
2

只是用python文件做一個基本的論壇,允許用戶登錄和/或創建一個帳戶。 以爲我會做更多一點,並讓每個用戶使用他們的IP地址登錄,然後能夠使用從他們的IP地址生成的唯一ID進行發佈,就像大多數圖像板一樣。如何使用python獲取瀏覽器的IP地址?

我可以很容易地編寫代碼,但我很難找到如何在不使用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() 

編輯:代碼心不是工作,還是尋求幫助

+0

您是否直接針對WSGI規範編寫代碼?它通常會在環​​境中。 – Cairnarvon

+0

那麼你能澄清一下你使用的是哪個Web界面嗎? –

回答

5

這聽起來像你正在運行這個CGI腳本。用戶的IP地址將在REMOTE_ADDR環境變量os.environ["REMOTE_ADDR"]中。

+0

論壇通常作爲CGI腳本工作嗎?聽起來像一個Web應用程序給我。 OP肯定需要爲他的問題添加更多細節! –

+0

我完全根據我的假設「只是用python文件做一個基本論壇」。你的猜測和我一樣好! – axblount

+0

在原文中更新了評論。 – Konrad

4

我想這可能工作

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

或者如果您使用的是CGI,您可以從REMOTE_ADDR環境 變量

0

你假設每個用戶都有一個唯一的IP地址嗎?如果是這樣,這不是生成用戶ID的好方法。在任何在線社區中,總會有一些用戶通過網關或代理服務器訪問您的網站,因此一些用戶將擁有相同的遠程IP地址。

你可以附加一些隨機數或時間戳到IP地址,或者只是使用日期時間戳。但爲什麼不使用用戶的電子郵件地址?

HTH

相關問題