在AWS中,可以使用AWS Lambda函数来获取原始IP或客户端IP。以下是一个使用Python和Boto3库的示例代码:
import json
import boto3
def lambda_handler(event, context):
# 获取原始IP或客户端IP
if 'headers' in event and 'X-Forwarded-For' in event['headers']:
ip = event['headers']['X-Forwarded-For']
elif 'requestContext' in event and 'identity' in event['requestContext'] and 'sourceIp' in event['requestContext']['identity']:
ip = event['requestContext']['identity']['sourceIp']
else:
ip = None
return {
'statusCode': 200,
'body': json.dumps({
'ip': ip
})
}
在上面的代码中,event
参数包含了Lambda函数的输入事件。如果请求经过了API Gateway,原始IP会被存储在event['headers']['X-Forwarded-For']
中。如果请求直接通过API Gateway或其他服务调用Lambda函数,客户端IP会被存储在event['requestContext']['identity']['sourceIp']
中。
返回的响应中,ip
字段包含了原始IP或客户端IP。可以根据实际情况进行自定义处理。
下一篇:AWS中的重复sqs事件