Java URL连接使用错误的IPV
因此,我制作了一个php脚本,返回用户的IP地址,当我在浏览器上打开它时,它返回一个IPV6 IP地址(如果用户有IPV6或将返回IPV4) 但是,当我使用Java与同一链接建立URL连接时,它会输出IPV4 这是我在java应用程序中使用的代码以及我网站的URLJava URL连接使用错误的IPV,java,php,java-8,httpurlconnection,Java,Php,Java 8,Httpurlconnection,因此,我制作了一个php脚本,返回用户的IP地址,当我在浏览器上打开它时,它返回一个IPV6 IP地址(如果用户有IPV6或将返回IPV4) 但是,当我使用Java与同一链接建立URL连接时,它会输出IPV4 这是我在java应用程序中使用的代码以及我网站的URL String ip = new JSONObject(new BufferedReader(new InputStreamReader(LynxClient.getConnection(new URL("https://lynxc
String ip = new JSONObject(new BufferedReader(new InputStreamReader(LynxClient.getConnection(new URL("https://lynxclient.com/getip.php")).getInputStream())).readLine()).getString("ip");
System.out.println(ip);
public static HttpsURLConnection getConnection(URL url) throws IOException {
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("User-Agent", "Mozilla/4.76");
conn.setUseCaches(false);
return conn;
}
<?php
$ip = null;
if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
$ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
echo json_encode(array('ip' => $ip));
这是我网站的PHP代码
String ip = new JSONObject(new BufferedReader(new InputStreamReader(LynxClient.getConnection(new URL("https://lynxclient.com/getip.php")).getInputStream())).readLine()).getString("ip");
System.out.println(ip);
public static HttpsURLConnection getConnection(URL url) throws IOException {
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("User-Agent", "Mozilla/4.76");
conn.setUseCaches(false);
return conn;
}
<?php
$ip = null;
if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
$ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
echo json_encode(array('ip' => $ip));
您是否尝试过在命令行上设置java.net.preferIPv6地址?请参阅@radai我没有使用命令行程序,我使用的是swing可执行文件。但我没有试过。但是如果我更喜欢IPv6,而用户没有IPv6呢?它会使用ivp4吗?文档似乎建议是(如果不是6,则使用ipv4)。您也可以在运行时设置它,但这个问题似乎表明它不起作用-@radai谢谢,我将尝试并报告结果。