1
我有一個IPv4地址。防爆。 172.19.20.21
檢查IPv4/IPv6地址是否使用PHP
我用來做這
$fs = @fsockopen($ip,$port,$errno,$errstr,3);
if(!$fs){
$error = 'SSC is down';
return Redirect::to('/')->with('error', $error)
->withInput(Request::except('password'));
}
它完美的罰款。
現在,我有一個IPv6地址前綴。 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'));
}
}
我可以使用上面的這段代碼嗎?或者我需要尋找IPv6的其他解決方案?
如果你100%確定你在'$ ip_address'中得到的是IP,這將只區分v4和v6。如果這對你很好,那麼這應該工作。 – apokryfos
你的'if'和'else'塊是完全相同的,所以你基本上說「如果我不改變我的代碼,它是否適用於IPv6?」我的回答是,「你試過了嗎?」 – IMSoP