Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java URL连接使用错误的IPV_Java_Php_Java 8_Httpurlconnection - Fatal编程技术网

Java URL连接使用错误的IPV

Java 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

因此,我制作了一个php脚本,返回用户的IP地址,当我在浏览器上打开它时,它返回一个IPV6 IP地址(如果用户有IPV6或将返回IPV4)

但是,当我使用Java与同一链接建立URL连接时,它会输出IPV4

这是我在java应用程序中使用的代码以及我网站的URL

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谢谢,我将尝试并报告结果。