Cara Mendapatkan IP Address Perangkat ini adalah catatan pribadi, agar tidak lupa, karena jarang dipakai, namun adakalanya dibutuhkan. Jadi harus dicatat disini. Ada 2 jenis IP dibawah ini yang bisa didapatkan, yaitu IP Public dan IP private sebuah device baik komputer, laptop, atau smartphone. Kedua jenis IP ini dibutuhkan, untuk IP private biasanya untuk urusan jaringan LAN, sedangkan IP Public untuk urusan jaringan internet. Pastikan sudah paham dulu pengertian istilah internet sebelum lanjut kebawah.
Mendapatkan IP Local
Langsung pada hasilnya saja, IP local kamu saat ini: . IP ini bisa dicek di pengaturan Open Network and Sharing Center di komputer windows kamu, untuk memeriksa kebenarannya. Apa yang tampil diatas dipanggil dengan script dibawah ini:
<code id="ip-local"></code>
<code id="ip-public"></code>
<script>
/**********************************************************************
* Get the user IP throught the webkitRTCPeerConnection
* @param onNewIP {Function} listener function to expose the IP locally
* @return undefined
*********************************************************************/
function getUserIP( onNewIP ) { // onNewIp - your listener func for new IPs
// compatibility for firefox and chrome
var myPeerConnection = window.RTCPeerConnection ||
window.mozRTCPeerConnection ||
window.webkitRTCPeerConnection,
pc = new myPeerConnection({
iceServers: []
}),
noop = function() {},
localIPs = {},
ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
key;
function iterateIP( ip ) {
if ( !localIPs[ ip ] ) {
onNewIP( ip );
}
localIPs[ ip ] = true;
}
//create a bogus data channel
pc.createDataChannel("");
// create offer and set local description
pc.createOffer( function( sdp ) {
sdp.sdp.split( "\n" ).forEach( function( line ) {
if ( line.indexOf( "candidate" ) < 0 ) {
return;
}
line.match( ipRegex ).forEach( iterateIP );
});
pc.setLocalDescription( sdp, noop, noop );
}, noop);
//listen for candidate events
pc.onicecandidate = function( ice ) {
if ( !ice || !ice.candidate ||
!ice.candidate.candidate ||
!ice.candidate.candidate.match( ipRegex ) ) {
return;
}
ice.candidate.candidate.match( ipRegex ).forEach( iterateIP );
};
}
// Usage
getUserIP( function( ip ) {
document.getElementById( "ip-local" ).innerHTML = "IP Address Private: " + ip ;
});
</script>
Mendapatkan IP Publik
Untuk mendapatkan IP Public ini sebenarnya kalau dari awal harus dari server online dan bahasa yang digunakan bisa menggunakan PHP, namun kali ini untuk memudahkan kita gunakan layanan pihak ke3 yang gratisan. Jadi bisa diakses dengan javascrpipt. Javascript disini saya kombinasikan dengan library jQuery biar simple. Nah langsung lagi ke hasil cek IP address public kamu adalah: . IP ini biasanya bisa dari IP bersama jika menggunakan jaringan operator semacam Smartfren dan lain-lain. Bisa juga IP unik khusus yang diberikan oleh operator semacam Indihome, FirstMedia, dan lain-lain. Untuk memeriksa kebenaran hasil script, cek di whatismyipaddress, kalau perlu klik rincian.
IP Public menggunakan layanan pihak ketiga diatas bisa didapatkan dari beberapa layanan online siap akses, diantaranya:
API URI | Response Type | Contoh Output (IPv4) |
---|---|---|
http://ipinfo.io | json | {"ip":"11.111.111.111", ...} |
https://api.ipify.org | text | 11.111.111.111 |
https://api.ipify.org?format=json | json | {"ip":"11.111.111.111"} |
https://api.ipify.org?format=jsonp | jsonp | callback({"ip":"11.111.111.111"}); |
https://api.ipify.org?format=jsonp&callback=getip | jsonp | getip({"ip":"11.111.111.111"}); |
https://jsonip.com/?callback=? | json | {"ip":"11.111.111.111", ...} |
Dari tabel diatas sebenarnya response AJAX JSON tidak melulu IP address, ada yang lebih lengkap dengan lokasi, provider dll, tinggal dicoba masing-masing dengan console.log( data )
saja untuk rinciannya.
Contoh menempelkan hasil response ke HTML seperti dibawah ini:
Via Javascript Callback:
<code id="ip-public"></code>
<script>
function getIP( json ) {
document.getElementById( "ip-public" ).innerHTML = "IP Address Public: ", json.ip;
}
</script>
<script src="https://api.ipify.org?format=jsonp&callback=getIP"></script>
Via jQuery JSON Request:
<code id="ip-public"></code>
<script>
$.getJSON( "https://api.ipify.org?format=json", function( data ) {
$( "#ip-public" ).html( "IP Address Public: " + data.ip );
});
</script>
Sekian dulu catatannya agar tidak lupa.