J'ai une adresse IPv4. Ex. 172.19.20.21
Vérifiez si l'adresse IPv4/IPv6 est à l'aide de PHP
que je faisais ce
$fs = @fsockopen($ip,$port,$errno,$errstr,3);
if(!$fs){
$error = 'SSC is down';
return Redirect::to('/')->with('error', $error)
->withInput(Request::except('password'));
}
Il fonctionne parfaitement bien.
Maintenant, j'ai une adresse IPv6 Ex. 3000::1
if ((strpos($ip, ":") > -1)){
// Code for IPv6 check
$fs = @fsockopen($ip,$port,$errno,$errstr,3);
if(!$fs){
$error = 'SSC is down';
return Redirect::to('/')->with('error', $error)
->withInput(Request::except('password'));
}
}else{
// Code for IPv4 check
$fs = @fsockopen($ip,$port,$errno,$errstr,3);
if(!$fs){
$error = 'SSC is down';
return Redirect::to('/')->with('error', $error)
->withInput(Request::except('password'));
}
}
Puis-je utiliser ce code ci-dessus? Ou je dois chercher une autre solution pour IPv6?
Cela ne la différence entre v4 et v6 si vous êtes certain à 100% que ce que vous avez in' ip_address' $ est une adresse IP. Si cela vous convient, cela devrait fonctionner. – apokryfos
Vos blocs 'if' et' else' sont identiques, donc vous dites essentiellement "si je ne change pas mon code, cela fonctionnera-t-il pour IPv6?" A quoi ma réponse est: "l'as-tu essayé?" – IMSoP