我正在使用html和python(我是python中的新手)的页面,我想拥有IP客户端地址,但我不知道是否可能。我看到它可以使用PHP语言。
所以,我在命令行中执行我的代码(使用Linux):
./code.py client_server app_name app_version
infos.py
def main( client_server, app_name, app_version):
template = open('infoHTML.py').read()
c = string.Template(template).substitute(
app_name = app_name,
app_version = app_version,
os = user,
user = login)
f = tempfile.NamedTemporaryFile(prefix='/tmp/info.html', mode='w', delete=False)
f.write(contenu)
f.close()
webbrowser.open(f.name)
if __name__ == "__main__":
client_server = sys.argv[1]
app_name = sys.argv[2]
app_version = sys.argv[3]
user = sys.platform
sys.argv.append(user)
login = getpass.getuser()
sys.argv.append(login)
main(client_server, app_name, app_version)
我在这里有一个html代码到python代码: infoHTML.py
<html>
App: ${app_name}<br/><br/>
Version: ${app_version}<br/><br/>
User: ${user}<br/><br/>
<form name="sendData" method="get" action="http://localhost:8000/cgi/display.py">
Project: <input type="text" name="pro"><br/><br/>
Number: <input type="text" name="num"/><br/><br/>
<input type="submit" value="OK"/>
</form>
</body>
</html>
答案 0 :(得分:0)
这是可能的。您需要通过在响应主体上呈现地址或在已经呈现响应后使用ajax请求它来执行此操作。
如果没有看到您正在使用的Web服务器,很难为您提供代码解决方案,但这里有一些针对第一种方法的指针。要获取地址,请在服务器端(python处理程序):
import socket
ip = socket.gethostbyname(socket.gethostname())
或者如果您使用的是Google App Engine:
ip = self.request.remote_addr
然后,您应该将IP写入响应。例如,如果您使用模板引擎来呈现HTML,那么您的HTML可能看起来像这样:
<html>
<script>
var ip = {{ip}}
</script>
并且在渲染模板的python代码上你应该做类似的事情:
htmlContent = template.render(ip=ip)
self.response.write(htmlContent)