我的要求是:我的网页是用python创建的(其中有html代码),每个页面都有一个按钮可以转到下一页。 例如,当我们提交html表单时,是否可以获取客户端的地址? 我的意思是,要进入客户端的URL地址。
如果可能,我会显示我的代码,否则我会删除我的问题。
这是我的 html 代码:
ip = cgi.escape(os.environ["REMOTE_ADDR"])
<html>
path install: ${install_path}<br/><br/>
os: ${os}<br/><br/>
unix user: ${user_name}<br/><br/>
<form name="sd" method="get" action="ip/cgi/scriptGet.py">
Name: <input type="text" name="name"><br/><br/>
Pseudo: <input type="text" name="pseudo"/><br/><br/>
<input type="submit" value="OK"/>
</form>
这里是我的 python代码:
import os, sys, platform, getpass, tempfile
import webbrowser
import string
import json
import cgi, cgitb, os
def main( server_IP,install_path):
template = open('scriptHmtl.phtml').read()
contenu = string.Template(template).substitute(
install_path = install_path,
os = user_os,
user_name = user_login
)
if __name__ == "__main__":
server_IP = sys.argv[1]
install_path = sys.argv[2]
main(server_IP,install_path)
答案 0 :(得分:0)
客户端的IP(我假设你的意思是&#34;客户端地址&#34;)以TCP / IP级别传递给您的服务器。如果您正在使用CGI(根据您的评论中隐藏的一些信息并且未在您的问题中说明),它应该以{{1}}的形式提供给CGI脚本环境(cf http://www.ietf.org/rfc/rfc3875 ,第4.1.8节)。在Python中,访问环境变量的方法是使用REMOTE_ADDR
(https://docs.python.org/2/library/os.html#os.environ)。
请注意,由于CGI脚本可以访问此地址,因此您无需将其添加到URL,查询字符串或(在POST或PUT请求的情况下)请求的正文。
另请注意,如果通过代理,负载均衡器或其他任何方式访问您的服务器,则REMOTE_ADDR可能不是真正的客户端IP,您可能必须检查HTTP请求的os.environ
标头标题,cf http://en.wikipedia.org/wiki/X-Forwarded-For。此标头(如果已定位)应与X-Forwarded-For
或任何其他请求标头相同,但可能已重命名为REMOTE_ADDR
,参见http://www.ietf.org/rfc/rfc3875.txt第4.1和4.1.18节。
答案 1 :(得分:0)
您可以使用cgi
和REMOTE_ADDR
并使用如下:
cgi.escape(os.environ["REMOTE_ADDR"])
将它放在变量中并将变量调用为html表单的动作....