簡體   English   中英

如何使用 Python 從 Azure 函數 Http 請求中獲取 IP 地址

[英]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
    )

該圖顯示了本地請求的結果。

https://i.stack.imgur.com/AkZKm.png

您的請求結果應保存到響應變量中。
在閱讀響應正文之前,您可以使用這段代碼來獲取 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM