Python:CGI程序想知道调用网页的IP地址

6 投票
2 回答
7045 浏览
提问于 2025-04-16 23:26

我刚开始学习Python编程。

我在一个本该很简单的操作上卡住了。我有一个小的基础Python程序,它是通过网页作为CGI程序调用的。

我想做的就是从HTTP头信息中提取IP地址。比如在PHP中,这个值就是$_SERVER['REMOTE_ADDR']

我查了一下,发现我需要使用web.ctx.ip,但当我在代码中使用这个时,出现了异常。我可能需要导入一些东西。我尝试了以下几个单独的导入,但都没有成功:

import web
import webapi as web

我希望能得到一个完整的代码示例,展示我需要导入什么。我的Python CGI程序运行在一台安装了基本Python 2.4.3的Linux机器上。我还需要安装其他东西吗?

2 个回答

1

上面的例子对我来说效果很好。我为了本地测试加了一些额外的内容。我花了很长时间才找到这个例子,所以“谢谢你!”

import cgi
import os

def f_get_ipaddress():
    try:
        ipaddress = cgi.escape(os.environ["REMOTE_ADDR"])
    except:
        ipaddress = "127.0.0.1"

    return ipaddress

print "Content-type: text/html"
print ""

ipaddress = f_get_ipaddress()

print ipaddress
7

来自 这里:

# When run as a cgi script, this will print the client's IP address.

import html
import os

print("Content-type: text/html")
print("")

print html.escape(os.environ["REMOTE_ADDR"])

搜索的内容是“python cgi 获取IP地址”,这是第一个搜索结果。这个答案适用于通用的Python CGI,如果你使用的是其他接口或库,可能会有所不同。不过,正如你所看到的,它和PHP版本的实现是完全相似的。

撰写回答