RADYO ARABESK TÜRK FORUM ALEM BİZİ DİNLİYOR ARABESK DAMAR
www.radyoarabeskturk.com
RADYO ARABESK TÜRK FORUM ALEM BİZİ DİNLİYOR ARABESK DAMAR
www.radyoarabeskturk.com
RADYO ARABESK TÜRK FORUM ALEM BİZİ DİNLİYOR ARABESK DAMAR
Would you like to react to this message? Create an account in a few clicks or log in to continue.
RADYO ARABESK TÜRK FORUM ALEM BİZİ DİNLİYOR ARABESK DAMAR

RADYO ARABESK TÜRK
 
AnasayfaAramaLatest imagesKayıt OlGiriş yap
Radyo Arabesk TÜRK www.radyoarabeskturk.com

SİTENE HTML KODLAR EKLE




 

  IP Adresinden MAC adresine ulaşmak : C# ve Process'ler

Aşağa gitmek 
YazarMesaj
Blade
ADMİN
ADMİN
avatar


Uyari Seviyesi : uyari yok
<b>Mesaj Sayısı</b> Mesaj Sayısı : 3630
<b>Rep Puanı</b> Rep Puanı : 1007
<b>Aktiflik Puanı</b> Aktiflik Puanı : 111662
<b>Kayıt Tarihi</b> Kayıt Tarihi : 23/06/10
<b>Cinsiyet</b> Cinsiyet : Erkek

Kullanıcı Aktifligi
Basari :
 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler Imgleft3/3 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler Emptybarbleue  (3/3)
Seviye:
 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler 241687221/1 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler Emptybarbleue  (1/1)
Güçlülük:
 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler Imgleft1/1 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler Emptybarbleue  (1/1)

 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler Empty
MesajKonu: IP Adresinden MAC adresine ulaşmak : C# ve Process'ler    IP Adresinden MAC adresine ulaşmak : C# ve Process'ler EmptySalı Ekim 05 2010, 20:14

IP Adresinden MAC adresine ulaşmak : C# ve Process'ler

Bu yazımızda girdiğimiz IP adresine sahip makinenin MAC adresini, nbtstat komutu yardımıyla elde eden bir C# konsol uygulamasını nasıl yazacağımızı göreceğiz.

Giriş

Öncelikle gerekli genel tanımları vererek başlayalım.

IP adresi nedir?

IP adresi, ağ üzerindeki makineleri tanımlamak için kullanılan 32 bit uzunluğunda bir adrestir. Internet'e bağlı olan her makinanın kendine ait bir IP adresi vardır. Bu adres Internet üzerinde makinelerin birbirlerini tanımalarını ve iletişim kurmalarını sağlar. IP adresleri birbirlerinden noktayla ayrılmış 8 bit uzunluğundaki, her biri 0-255 arasında değişen 4 değişik rakam grubundan oluşur ve bu gruplardan her birine Yunanca'da sekizli anlamına gelen "oktet" adı verilir.

Örnek: 209.67.50.203

MAC Adresi nedir?

Açılımı Media Access Control Adress olan 48 bit uzunluğundaki (12 hex dijitle temsil edilen) bu adres her ağ kartının ROM'una üretim aşamasında yazılmıştır ve (son dönemlerde bu işi yapmak üzere özel tasarlanmış programların yardımı hariç) değiştirilemez. Ağ kartı üreticisi firmalar, önce IEEE (Institue of Electrical and Electronics Engineers - [Linkleri görebilmek için üye olun veya giriş yapın.] ) isimli kuruma başvurur ve 24 bit uzunluğunda (6 hex dijit) bir üretici kodu alır. (Örneğin 0004AC IBM'e, 000142 de Cisco'ya aittir.) Kalan 24 bit (6 hex dijit) ise arabirim seri numarasını temsil eder. Ağ kartları bir diğer ağ kartına veri yollarken alıcıyı diğerlerinden ayırmak için bu MAC adresini kullanır.

Örnek: 00-01-42-AA-BB-CC

Process nedir?

Process, işletim sisteminde çalışmış,çalışan veya çalışacak olan bir işlem olarak tanımlanabilir. Çalıştırdığımız her bir uygulama bir process'dir ve öncelik sırası, çalışma süresi vb. gibi niteliklere göre işletim sistemi tarafından çalıştırılır, düzenlenir ve denetlenir.

nbtstat nedir?

Bir komut olan Nbtstat mevcut TCP/IP bağlantılarını ve protokol istatistiklerini NBT (Net Bios Over TCP/IP) kullanarak gösterir. (Net Bios, IBM ve Sytek tarafından istemci bilgisayarların ağdaki kaynaklara erişimini sağlamak için geliştirdikleri bir API'dir ve Net Bios kullanarak hacking genelde hackerlar için uzaktan yapılan saldırıların en kolay yoludur.)

Kullanımı ise " NBTSTAT [-a RemoteName] [-A IP address] [-c] [-n] [-r] [-R] [-s] [S] [interval] ] " şeklindedir.

Bizi bu yazıda -A parametresi ilgilendirmektedir. -A yani Adapter Status, IP adresi verilen karşı bilgisayarın isim tablosunu ekrana getirir.

 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler 121448qg

Örnekte de görüldüğü gibi ipsi verilen bilgisayarın MAC adresi bu komut ve parametreleri ile elde edilebilmektedir.

Bizde yazacağımız uygulamada yeni bir process olarak nbtstat komutunu çağırarak MAC adresini elde edip ekrana yansıtacağız.

Örnek uygulama

Kodlamaya geçmeden önce kullanacağımız, yabancı gelebilecek bazı sınıfları inceleyelim.

System.Diagnostics isim alanı, Process ve ProcessStartInfo sınıfları

.NET Framework içerisindeki System isim alanlarından birisi olan System.Diagnostics isim alanı, işlemler (process),

olay günlüğü (event log), ve performans sayıcılarla (performance counters) etkileşim sağlayan sınıfları barındırır.

Bizde process'lerle ilgileneceğimizden bu isim alanınına ait sınıfları kullanacağız.

Kullanacağımız sınıflar bu alandaki Process ve ProcessStartInfo sınıflarıdır.Bunlardan Process sınıfı tüm process'lere

erişimi (listeleme vb. gibi işlemler), yerel sistem process'lerini başlatmayı ve bitirmeyi; ProcessStartInfo sınıfı ise bir

process'i başlatırken gerekecek olan değerleri girmeyi (örneğin parametreler) ve gerekli ayarları yapmayı sağlar.

Bu şekilde process üzerinde daha etkin çalışabiliriz.

(Bu isim alanı aynı zamanda Trace ve Debug gibi, kodumuzun çalışmasını denetlememizi sağlayan ve debug

işlemlerini yöneten iki önemli sınıf içermektedir. Fakat konumuzla ilgili olmadığı için bu sınıfları şu anda incelemeyeceğiz.

System.Diagnostics isim alanı hakkında daha detaylı bilgi için

[Linkleri görebilmek için üye olun veya giriş yapın.] adresini ziyaret edebilirsiniz.)

Gerekli sınıfları da inceledikten sonra artık kodlamaya geçebiliriz.

ip2mac isimli bir C# konsol uygulaması açarak aşağıdaki kodu projemize
using System;

using System.Diagnostics; // Process ve ProcessStartInfo class'larini barindiran namespace

namespace ip2mac

{ class MACAdresi

{

public static string MacBul(string IP) //Parametre olarak IP adresini alıp MAC adresini dondurur

{ string MAC = "";

try

{ ProcessStartInfo psInfo = new ProcessStartInfo();

Process ps = new Process();

psInfo.FileName = "nbtstat"; // process'imizin dosya adı

psInfo.Arguments = "-A " + IP; // ve parametreleri

psInfo.RedirectStandardInput = false; // Girdinin Process sınıfının StandartInput elemanından alınmamasını sağlar

psInfo.RedirectStandardOutput = true; // Çıktının Process sınıfının StandartOutput elemanına yazılmasını sağlar

psInfo.UseShellExecute = false; // Process başlatılırken işletim sistemi kabuğunun kullanılmayacağını belirler



ps = Process.Start(psInfo); // girdigimiz başlangıç bilgilerine gore process baslatılır.



string tmpStr = "";

int num1 = -1;

while (num1 <= -1)

{

num1 = tmpStr.Trim().ToLower().IndexOf("mac address", 0);

if (num1 > -1)

{

break;

}

tmpStr = ps.StandardOutput.ReadLine(); // Yönlendirilen process çıktısı satır satır ele alınır

}



ps.WaitForExit(); // process'in sonlanması beklenir



MAC = tmpStr.Trim(); // Çıktının istenilen kısmı döndürülecek değişkene atanır

}



catch (Exception ex)

{

Console.WriteLine(ex.Message); // yakalanan istisnai durumun mesajı ekrana yansıtılır

}



return MAC;

}



[STAThread]

static void Main(string[] args)

{

try

{

string ip = args[0]; // komut satirinda girilecek ilk parametre ip adresidir

string mac = MacBul(ip);



Console.WriteLine("\n");

Console.WriteLine(mac);

Console.WriteLine("\nCikis icin ENTER'a basiniz...");

}

catch (Exception

ex)

{

Console.WriteLine(ex.Message); // yakalanan istisnai durumun mesajı ekrana yansıtılır

}

Console.ReadLine();

}

}

}


Aşağıda programımızın ekran görüntüsü görünmektedir:

 IP Adresinden MAC adresine ulaşmak : C# ve Process'ler 221421ja

Son olarak

Bu yazımızda öncelikle IP ve MAC adreslerinin, process'lerin ne olduklarından, nbtstat komutunun

ne işe yaradığından ve nasıl kullanıldığından bahsettik. Daha sonra girdiğimiz IP adresine sahip makinenin

MAC adresini, nbtstat komutunu bir process olarak çalıştırarak elde eden bir C# konsol uygulamasını nasıl

yazacağımızı gördük. Yazdığımız uygulama birkaç bilgisayarda test edilmiş başarılı sonuçlar alınmıştır.

Öncelikle benim yaptığım gibi, programı kendi ip adresleriniz uzerinde test etmenizi tavsiye ederim.

Sayfa başına dön Aşağa gitmek
http://www.radyoarabeskturk.com/
 
IP Adresinden MAC adresine ulaşmak : C# ve Process'ler
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» NFS Underground 2'de Sınırsız Para ve 600 km/h'ye Ulaşmak İstermisin ?

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
RADYO ARABESK TÜRK FORUM ALEM BİZİ DİNLİYOR ARABESK DAMAR :: BİLGİSAYAR & YAZILIM DONANIM YAMALAR :: Ağ (Network)-
Buraya geçin: