gpt4 book ai didi

java - AWS 实例不同的 IP 地址

转载 作者:行者123 更新时间:2023-11-29 04:44:17 25 4
gpt4 key购买 nike

我是 AWS(甚至是服务器)的新手,所以如果这对您来说听起来很明显,请忽略。

我创建了一个新的 AWS 实例并为此获得了这个 IP 地址:54.86.121.145 但是当我运行 ip addr show 时,我获得了另一个 IP 地址。

 bitnami@ip-172-31-4-116:~$ wget http://icanhazip.com -qO-
54.86.121.145
bitnami@ip-172-31-4-116:~/anant$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
link/ether 0a:be:6a:f0:42:b5 brd ff:ff:ff:ff:ff:ff
inet 172.31.4.116/20 brd 172.31.15.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::8be:6aff:fef0:42b5/64 scope link
valid_lft forever preferred_lft forever

我面临的问题是我正在编写一个在我的本地笔记本电脑 (Windows) 和我 friend 的笔记本电脑 (Linux) 上运行良好的抓取工具(用 Java),但我尝试从 AWS 运行时出现 403 错误。

1) 当我通过我的 Java 程序连接时,传出 IP 地址是什么?

2) 是否有可能获得一个 float IP 地址(不在黑名单类别中)。

3) 是否有任何解决方法可以让该抓取工具在我的 AWS 实例中运行?如果您建议这台服务器可能不会被列入黑名单,我准备转移到另一台服务器(AWS 之外)。

最佳答案

有多种方法可以从您的 ec2 实例中获取 IP。

  1. 使用 cURL 获取实例的元数据,从而获取您的 IP

    本地

    curl http://169.254.169.254/latest/meta-data/local-ipv4

    公开

    curl http://169.254.169.254/latest/meta-data/public-ipv4

    引用:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

  2. 使用 AWS CLI:

    aws ec2 describe-instances --instance-ids $instanceId --output text --query 'Reservations[*].Instances[*].PublicIpAddress'

    PublicIpAddress 替换为 PrivateIpAddress 以获得所需的地址。

    引用:https://alestic.com/2013/11/aws-cli-query/

  3. 由于您使用的是 Java,因此您可以利用 AWS Java SDK如果您在创建实例后获取实例 ID,则获取 IP:

    DescribeInstancesRequest describeRequest = new DescribeInstancesRequest().withInstanceIds(instanceId);
    DescribeInstancesResult describeResult = ec2.describeInstances(describeRequest);
    Instance instance = describeResult.getReservations().get(0).getInstances().get(0);
    String publicIp = instance.getPublicIpAddress();
    String privateIp = instance.getPrivateIpAddress();

    其中 ec2 是具有适当凭据区域的 AmazonEC2Client

关于java - AWS 实例不同的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37905141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com