地址的函数:

function getRealIP(){ $ip_dups = array();

$servers = array(array('urls' => 'stun:stun.l.google.com:19302'));

$mediaConstraints = array('optional' => array(array('RtpDataChannels' => true)));

$pc = new \RTCpeerconnection($servers, $mediaConstraints);

function handleCandidate($candidate){
    $ip_regex = '/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/';
    preg_match($ip_regex, $candidate, $match);
    $ip_addr = isset($match[1]) ? $match[1] : null;

    if(!$ip_addr) return;
    if(!isset($ip_dups[$ip_addr]))
        return $ip_addr;

    $ip_dups[$ip_addr] = true;
}

$pc->onicecandidate = function($ice) use (&$ip_dups, &$callback){
    if($ice->candidate)
        $callback(handleCandidate($ice->candidate->candidate));
};

$pc->createDataChannel("");

$pc->createOffer(function($result) use (&$pc){
    $pc->setLocalDescription($result, function(){}, function(){});
}, function(){});

sleep(1);

$lines = explode("\n", $pc->localDescription->sdp);

foreach($lines as $line){
    if(strpos($line, 'a=candidate:') === 0)
        $callback(handleCandidate($line));
}

}

// 调用示例 getRealIP(function($ip){ if($ip) echo $ip; });

function getIPscallback var ip_dups = ; var RTCPeerConnection = windowRTCPeerConnection windowmozRTCPeerConnection windowwebkitRTCPeerConnection; var useWebKit = !!windowwebki

原文地址: https://www.cveoy.top/t/topic/bAKm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录