[英]IP switching using Python inside AWS Ubuntu EC2 instance
實際上,我有一些輔助私有 IP,附加到我的 ec2 實例,每個都與公共彈性 IP 相關聯。 我有一段 python 代碼可以使用python-requests
執行一些 API 請求。 在發送每個請求之前,我需要從已附加的 IP 列表中設置自定義源 IP。
嘗試了下面的代碼,但以錯誤結束:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('X.X.X.X', 20))
提前致謝
彈性IP地址存在於1:1 NAT后面,所以需要綁定實例后面的本地IP地址。 您可以要求元數據存儲獲取每個網絡適配器的公共/本地 IP 地址。
大多數時候這樣做非常簡單:
import requests
import socket
metadata = "http://169.254.169.254/latest/meta-data/network/interfaces/macs/"
for mac_id in requests.get(metadata).text.split("\n"):
local_ip = requests.get(metadata + mac_id + "local-ipv4s").text
public_ip = requests.get(metadata + mac_id + "public-ipv4s").text
print("{} has local IP of {} and public IP of {}".format(mac_id, local_ip, public_ip))
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((local_ip, 1234))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.