[英]How do I get the IP address from a http request using the requests library?
[英]How do i get Ip Address from Azure Function Http request with Python
我如何使用 python 从这个请求 HTTP 中获取 IP 地址? 我发现了一些使用 C# 的帖子,如下所示: 在 Azure 函数中获取远程 IP 地址
我有这个代码:
import logging
import json
import socket
import getpass
import os
from requests import get
import azure.functions as func
from azure.common.client_factory import get_client_from_json_dict,get_client_from_cli_profile
from azure.mgmt.sql import SqlManagementClient
from azure.mgmt.resource import SubscriptionClient
from azure.common.credentials import ServicePrincipalCredentials
def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
Myip = get('https://api.ipify.org').text
username = getpass.getuser()
return func.HttpResponse(
f"List of IPs: {str(Myip)}",
status_code=200
)
该图显示了本地请求的结果。
您的请求结果应保存到响应变量中。
在阅读响应正文之前,您可以使用这段代码来获取 IP 地址。 假设您的响应变量称为rsp
print rsp.raw._fp.fp._sock.getpeername()
这里有一个类似的问题 = 如何使用请求库从 http 请求中获取 IP 地址?
更多信息, Python:使用请求模块从 HTTP 请求中获取远程 IP
使用请求 2.22.0更新Python3.8
resp = requests.get('https://www.google.com', stream=True)
resp.raw._connection.sock.getsockname()
您可以从 req 对象中的 x-forwarded-for 标头中获取传入请求的源 IP。 我使用以下代码来记录它:
if "x-forwarded-for" in req.headers:
source_ip = req.headers["x-forwarded-for"].split(':')[0]
logging.info("Incoming request from IP: " + source_ip)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.