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 = "222.22.22.222"; // Bu kısıma İp adrsini yazınız 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();
}
}
}
Not:
alıntıdır.