我设置了一个静态IP并在我的笔记本上做了端口转发,现在我有一个静态IP地址,但它相对静态,每当我重新启动机器,我得到另一个地址,并且由于我有一个“静态“IP我现在可以做PayPal IPN消息。但是我怎样才能从我的Java程序中获得这个静态IP?我能想到的一种方式是访问:http://portforward.com/,并在该页面上告诉我我的外部IP是什么,所以我可以使用Java代码提取它,是否有任何其他方式可以在我的Java代码中获得此信息?端口转发后,如何让我的外部IP在Java?
0
A
回答
1
最好的解决办法可能是dynamic DNS。本质上,您在计算机(或路由器)上运行程序,以便在IP更改时通知DNS服务器。然后,你可以告诉PayPal域名。
0
我看到这样的三种方式:
- 当你发现,查询什么IP你显然是从连接外部服务器。这很简单,但您需要这样的服务才能使用,并且通常情况下,没有透明的代理会混淆您的结果。
- IGD是UPnP的一个子协议,如果你的端口转发设备支持它,很容易给你结果(很多)。谷歌“IGD JAVA”用于图书馆和样品。
- 注册一个动态DNS服务,然后查找您自己的DNS名称。
0
可以使用NetworkInterface类:
Enumeration<NetworkInterface> ifcs = NetworkInterface.getNetworkInterfaces();
while(ifcs.hasMoreElements()){
NetworkInterface ifc = ifcs.nextElement();
System.out.println("Adresses of: "+ifc.getDisplayName());
Enumeration<InetAddress> adresses = ifc.getInetAddresses();
while(adresses.hasMoreElements()){
System.out.println(adresses.nextElement().getHostAddress());
}
}
这个片段将显示所有接口,并绑定到这些综合方案的。您需要查看列表以查找适当的接口(另请参阅NetworkInterface.getByName(String name))然后查看该接口的地址。一旦找到合适的InetAdress,就可以使用它来获取字符串或字节表示。
+1
这将返回本地地址,而不是公共地址。 – 2010-07-12 05:36:07
1
有一个公共服务,您可以通过脚本调用以检索您的外部IP地址。请记住,他们已经改变了链接位置一次。如果你控制自己的服务器,你应该编写你自己的PHP脚本来简单地将调用者的地址返回给脚本。
http://www.whatismyip.com/faq/automation.asp - 按照开发商联系,他们提供
import java.net.*;
import java.io.*;
URL myExternalIP = new URL("PUT THE LINK HERE");
BufferedReader in = new BufferedReader(new InputStreamReader(
myExternalIP.openStream()));
String ip = in.readLine(); //you get the IP as a String
System.out.println(ip);
自己的服务器脚本是一个简单的一行。创建一个名为whatismyip.php的文件,这里是内容。
<? echo $_SERVER['REMOTE_ADDR']?>
相关问题
- 1. Java端口转发
- 2. 端口从Java内部转发
- 3. 通过端口转发将udp服务器绑定到外部IP
- 4. 如何问我在java中的外部IP地址
- 5. 端口转发Devstack尝试连接到本地IP而不是Swift中的端口转发IP地址
- 6. 如何从Java中Ping外部IP Android
- 7. 如何发布到外部IP?
- 8. 如何使用IP和端口直接与外部客户端进行通信
- 9. 在Java中更改UDP数据包的发送IP和端口
- 10. 如何让'mvn lagom:runAll'让我的服务在端口上监听?
- 11. 如何让我的后端更新JSON
- 12. Java:将端口转发到ServerSocket
- 13. Java套接字端口转发
- 14. 使用我的外部IP地址与HTTPS转发到我的本地机器
- 15. 在Java中获取'外部'IP地址
- 16. C#端口转发
- 17. 试图让InetAddress.getLocalHost.getHostAddress(Java/Scala)返回外部IP
- 18. telnet端口转发如何工作?
- 19. 如何转发端口使用python
- 20. 如何转发本地主机端口?
- 21. 如何撤消kubectl端口转发
- 22. Docker在外部端口打开 - 没有打开好的端口
- 23. 如何从端口80到端口XXXX无缝连接/转发?
- 24. 如何将192,168,1,2,7,138转换为IP地址192.168.1.2的端口1930
- 25. 如何知道负责客户端的外部IP地址
- 26. 更快的端口转发
- 27. 的Solaris 10端口转发
- 28. apache中的端口转发
- 29. iPhone中的端口转发
- 30. 鱿鱼的端口转发
如何“注册动态DNS服务”?我需要打电话给我的ISP,安装一个程序,它是免费的吗? – Frank 2010-03-30 15:04:30
最简单的方法是,您只需注册一个动态DNS服务(例如http://www.dyndns.com/services/dns/dyndns/)并使用他们必须更新您的真实IP的任何机制。大多数(如果不是全部的话)服务提供了一个小工具,您可以运行它来自动更新您的动态DNS名称。 DynDNS的服务最多可免费使用5个主机名称。 – 2010-03-30 15:16:01
@Matt:谢谢,非常有帮助!我有点困惑,因此我甚至不需要建立一个静态IP并进行端口转发,只需转到dyndns.com/services/dns/dyndns并注册他们的服务并运行它们软件,它会自动发送我的动态地址到我的注册名称?设置静态IP并将其转发给我自己的目的是什么? – Frank 2010-03-30 16:00:05