IP adresi, internet üzerindeki cihazların kimlik numarasıdır. Bu numara, cihazların internet üzerinde tespit edilmesi ve veri iletişimi yapmasına olanak tanır. IP adresleri, cihazların bilgisayar ağlarında ve internet üzerinde tespit edilmesini sağlar.
IP adresleri, iki ana türe ayrılmaktadır: IPv4 ve IPv6. IPv4, 32 bit uzunluğunda adresler kullanır, bu nedenle yaklaşık 4,3 milyar farklı IP adresi sağlar. Bu, günümüzde artık yeterli sayıda IP adresinin kalmaması nedeniyle IPv6'ya geçişe neden oldu. IPv6, 128 bit uzunluğunda adresler kullanır ve yüksek sayıda farklı IP adresi sağlar.
Bir IP adresi, dört bölüme ayrılmış bir dizi sayıdır. Bu sayılar, noktalarla ayrılır. Örneğin, 192.168.1.1 bir IP adresidir. Bu adres, ilk iki sayı bloğuna göre özel bir kabul edilir ve son iki sayı bloğu, modeminiz veya yönlendiriciniz tarafından atanan bir adresdir.
IP adresleri, ağ ayarlarını yapılandırmak, gelen bağlantıları yönlendirmek, ağ tabanlı güvenlik ayarlarını yapılandırmak ve internet servis sağlayıcıları arasında trafiği yönlendirmek için kullanılır.
Aşağıda, JavaScript kullanarak IP adreslerini almak için örnek kodlar verilmiştir:
```
// IPv4 adresini almak için
function getIPv4Address() {
const RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
if (RTCPeerConnection) {
const peerConnection = new RTCPeerConnection({ iceServers: [] });
peerConnection.createDataChannel(\"\");
peerConnection.createOffer().then(offer => peerConnection.setLocalDescription(offer));
peerConnection.onicecandidate = event => {
if (event && event.candidate && event.candidate.candidate) {
const [, ip] = event.candidate.candidate.split(' ');
if (ip) {
peerConnection.onicecandidate = null;
return ip;
}
}
};
}
return null;
}
//IPv6 adresini almak için
function getIPv6Address() {
return new Promise(resolve => {
const iframe = document.createElement(\"iframe\");
iframe.style.display = \"none\";
document.body.appendChild(iframe);
const win = window.frames[window.frames.length - 1];
win.location.href = \"https://ipv6-test.com/\";
win.onload = () => {
const { IPv6 } = win.document.querySelector(\"#network-info\").dataset;
resolve(IPv6);
document.body.removeChild(iframe);
};
});
}
```
Bu kodlar, RTC ve iframe kullanarak hem IPv4 hem de IPv6 adresleri alır.
Özellikle IPv4 adresi almak için, RTCPeerConnection kullanılması gerektiği unutulmamalıdır, çünkü çoğu modern web tarayıcısı bir WebRTC API uygular. Aynı zamanda, IPv6 adresi almak için iframe kullanmayı seçtik, çünkü IPv6 test sayfaları genellikle yalnızca iframe içinde çalıştırılabilir.