![](/img/trans.png)
[英]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.