无法使用本地IPv6地址连接到云端SQL

我想使用其免费IPv6地址连接到Google云SQL实例,而不是购买IPv4地址。 为此,我查了我的IPv6地址,并允许它。 我也查了我的路由器的IPv6前缀,并允许(afaik,应该允许我的家庭networking中的所有电脑访问SQL实例)。

下面的代码创build了这个问题:

$servername = "2001:6532:1234:1:6a4f:e1d7:5d69:52a3"; $username = "looooool"; $password = "superSecretStuff"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); 

而且这个代码会产生这个错误:

 Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. in C:\Users\kjh\Documents\SF WEBSITE\appengine-try-php-master\connect_db.php on line 8 Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. in C:\Users\kjh\Documents\SF WEBSITE\appengine-try-php-master\connect_db.php on line 8 Connection failed: php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. 

对不起,这个错误信息是德文的,但是我不知道哪里会改变。 第8行是$conn = new mysqli($servername, $username, $password, $dbname); 在上面。 我已经改变了IP地址,所以如果它看起来很奇怪,那就是为什么。 希望您能够帮助我。

如果我从Google获得IPv4地址,则不会有任何问题。

这是从这里我被告知重新在这里重新发布,因为这可能是我的ISP没有分配一个持久的IPv6地址的问题。

在我想查看我的IPv6地址之后,我发现了一些奇怪的事情。 我去了wieistmeineip.de查找我的IPv6地址,起初它只显示了我的IPv6地址,然后当我加速testing时,我的IPv6地址消失了,从此我只有一个IPv4地址。 至less这就是所有的IP地址网站所说的。 谷歌同样发生的事情,当你谷歌“什么是我的IP地址”谷歌显示你的IP地址,首先它显示我的IPV6,现在它只显示IPV4。

我的ISP:Kabel Deutschland

现在我有两个问题:

  1. 如果上面的代码工作,我允许我的IPv6地址访问云SQL和我的ISP没有把我搞砸了?

  2. 有什么方法可以检查我的ISP是否在做一些奇怪的事情?

更新:

我试图在我的机器(Windows)上完全禁用IPv4,所以我这样做,并重新启动我的电脑。 重启后,我没有从我的路由器得到一个IPv6地址,所以我又启用了IPv4,我得到了一个IPv4地址,但没有IPv6地址。 我希望有帮助。

所以我现在可以在Michael Hampton的帮助下自己回答这个问题。

  1. 不需要。IPv6地址需要放在方括号内。 因此,以下应该工作: $servername = "[2001:6532:1234:1:6a4f:e1d7:5d69:52a3]";

  2. 检查的方法是在获得正确的代码后再试一遍。 在我的情况下,我的家庭networking正在做一些奇怪的事情,并重新启动我所有的networking设备。