Java ile Yerel IPv4 Adresini Bulma ve Sanal Ağ Arayüzlerini Ayırt Etme
Bu yazıda, Java programlama dili ile yerel IPv4 adreslerini nasıl alabileceğimizi ve sanal ağ arayüzlerini nasıl ayırt edebileceğimizi…
Java ile Yerel IPv4 Adresini Bulma ve Sanal Ağ Arayüzlerini Ayırt Etme

Bu yazıda, Java programlama dili ile yerel IPv4 adreslerini nasıl alabileceğimizi ve sanal ağ arayüzlerini nasıl ayırt edebileceğimizi detaylı bir şekilde ele alacağız. Ağ programlama ve ağ arayüzleri konularında bilgi sahibi olmak isteyenler için faydalı bir rehber olacaktır.
Adım Adım Rehber
1. Ağ Arayüzlerini Alma
Öncelikle, sistemdeki tüm ağ arayüzlerini almak için NetworkInterface.getNetworkInterfaces() yöntemini kullanıyoruz. Bu yöntem, bir Enumeration nesnesi döndürüyor ve biz de bu nesne üzerinden döngü ile tüm ağ arayüzlerini gezebiliyoruz.
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
// İşlemler...
}
2. Gereksiz Arayüzleri Filtreleme
Loopback (geri döngü) ve down (kapalı) durumda olan arayüzleri ve sanal ağ arayüzlerini filtrelemek istiyoruz. Bunun için networkInterface.isLoopback(), networkInterface.isUp() ve isVirtualNetworkInterface(networkInterface) yöntemlerini kullanıyoruz.
if (networkInterface.isLoopback() || !networkInterface.isUp() || isVirtualNetworkInterface(networkInterface)) {
continue;
}
3. IP Adreslerini Alma
Her bir ağ arayüzü için IP adreslerini almak üzere networkInterface.getInetAddresses() yöntemini kullanıyoruz. Bu da bir Enumeration nesnesi döndürüyor ve döngü ile bu adresleri gezebiliyoruz. Sadece IPv4 adreslerini kontrol etmek için address instanceof Inet4Address koşulunu kullanıyoruz.
Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
if (address instanceof Inet4Address) {
String ipAddress = address.getHostAddress();
// İşlemler...
}
}
4. Belirli Alt Ağları Filtreleme
IPv4 adreslerinden sadece belirli bir alt ağa (örneğin 192.168.x.x) ait olanları almak için ipAddress.startsWith("192.168.") kontrolünü yapıyoruz.
if (ipAddress.startsWith("192.168.")) {
System.out.println("Display name: " + networkInterface.getDisplayName().toLowerCase());
System.out.println("Name: " + networkInterface.getName().toLowerCase());
System.out.println("Yerel IPv4 Adresi: " + ipAddress);
}
5. Yerel Ağ Arayüzlerini Tanımlama
Yerel ağ arayüzlerini tanımlamak için bir enum ve bu enum ile kontrol eden bir yöntem kullanıyoruz. Bu enum içerisinde yaygın yerel ağ arayüzü isimlerini saklıyoruz ve bu isimler ile networkInterface.getDisplayName() ve networkInterface.getName() değerlerini karşılaştırıyoruz.
private static boolean isVirtualNetworkInterface(NetworkInterface networkInterface) {
String displayName = networkInterface.getDisplayName().toLowerCase();
String name = networkInterface.getName().toLowerCase();
for (NetworkInterfaceName value : NetworkInterfaceName.values()) {
if (displayName.contains(value.getName()) || name.contains(value.getName())) {
return true;
}
}
return false;
}
@Getter
public enum NetworkInterfaceName {
ETHERNET("ethernet"),
ETHERNET_ADAPTER("ethernet adapter"),
WIFI("wi-fi"),
WIRELESS("wireless"),
WLAN("wlan"),
ETH0("eth0"),
ETH1("eth1"),
AIRPORT("airport");
private final String name;
NetworkInterfaceName(String name) {
this.name = name;
}
}
Kodun Tamamı
Son olarak, yazıda bahsedilen tüm kodun tamamını aşağıda bulabilirsiniz:
public class GetIPv4Address {
public static void main(String[] args) {
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
// Loopback ve down durumda olanları ve sanal ağ arayüzlerini atlıyoruz
if (networkInterface.isLoopback() || !networkInterface.isUp() || isVirtualNetworkInterface(networkInterface)) {
continue;
}
Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
// IPv4 adreslerini kontrol ediyoruz ve sadece belirli bir alt ağa ait olanları alıyoruz
if (address instanceof Inet4Address) {
String ipAddress = address.getHostAddress();
if (!networkInterface.getDisplayName().toLowerCase().contains("host-only")){
if (ipAddress.startsWith("192.168.")) {
System.out.println("Display name: " + networkInterface.getDisplayName().toLowerCase());
System.out.println("Name: " + networkInterface.getName().toLowerCase());
System.out.println("Yerel IPv4 Adresi: " + ipAddress);
}
}
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
// Sanal ağ arayüzlerini tanımlamak için bir yöntem
private static boolean isVirtualNetworkInterface(NetworkInterface networkInterface) {
try {
// Ağ arayüzü isimlerini küçük harfe çevirerek al
String displayName = networkInterface.getDisplayName().toLowerCase();
String name = networkInterface.getName().toLowerCase();
// Enum içindeki isimlerle kontrol et
for (NetworkInterfaceName value : NetworkInterfaceName.values()) {
if (displayName.contains(value.getName()) || name.contains(value.getName())) {
return true;
}
}
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
@Getter
public enum NetworkInterfaceName {
ETHERNET("ethernet"),
ETHERNET_ADAPTER("ethernet adapter"),
WIFI("wi-fi"),
WIRELESS("wireless"),
WLAN("wlan"),
ETH0("eth0"),
ETH1("eth1"),
AIRPORT("airport");
private final String name;
NetworkInterfaceName(String name) {
this.name = name;
}
}
ÇIKTI

Sonuç
Bu yazıda, Java kullanarak yerel IPv4 adreslerini nasıl alabileceğimizi ve sanal ağ arayüzlerini (sanal makineler (VM’ler), konteynerler ve çeşitli ağ yapılandırmaları) nasıl ayırt edebileceğimizi öğrendik. Ağ programlama konusunda bilgi sahibi olmak ve uygulamalarında bu bilgileri kullanmak isteyenler için yararlı olmasını umuyorum.
메타데이터
- post_id
- d2da5aa4e346
- slug
- java-ile-yerel-ipv4-adresini-bulma-ve-sanal-ağ-arayüzlerini-ayırt-etme-d2da5aa4e346
- url
- https://medium.com/@dilara_dokuyucu/java-ile-yerel-ipv4-adresini-bulma-ve-sanal-a%C4%9F-aray%C3%BCzlerini-ay%C4%B1rt-etme-d2da5aa4e346
- canonical_url
- https://medium.com/@dilara_dokuyucu/java-ile-yerel-ipv4-adresini-bulma-ve-sanal-a%C4%9F-aray%C3%BCzlerini-ay%C4%B1rt-etme-d2da5aa4e346
- author_url
- https://medium.com/@dilara_dokuyucu
- status
- ok
- fetched_at
- 2026-08-09 20:31:32