PDA

View Full Version : تعیین آی پی در سی شارپ!



mamadjakob
یک شنبه 13 مرداد 1392, 17:46 عصر
با سلام برای تغییر آی پی در سی شارپ و عوض شدنش و تعیین زمان برای عوض شدن ای پی چه دستوراتی و یا چه سورتی و کدی باید وارد کنم؟
ممنون.

mamadjakob
یک شنبه 13 مرداد 1392, 18:15 عصر
چی شد؟اگر جایی هست لطفا لینکشو بدید!

sohil_ww
یک شنبه 13 مرداد 1392, 18:35 عصر
دوست عزیزم یک سرچ ناقابل تو این سایت شما رو به این می رسوند

که


در سی شارپ شما فقط به این آی پی دست رسی دارید و اونم 127.0.0.1 هستش ! ! !


البته تا اونجایی که من می دونم فکر کنم راهی نیست

fazelit
یک شنبه 13 مرداد 1392, 19:05 عصر
شما که می دونی هستش لینکش رو بی زحمت قرار بدید تا همه دوستان استفاده کنند

sohil_ww
یک شنبه 13 مرداد 1392, 20:39 عصر
شما که می دونی هستش لینکش رو بی زحمت قرار بدید تا همه دوستان استفاده کنند

دوست عزیز منظور من اینه که تو سی شارپ نمیشه به آی پی دست پیدا کرد تا اونجایی که تحقیق کردم

aliagamon
یک شنبه 13 مرداد 1392, 21:05 عصر
از این کد استفاده کن(بزار تو برنامت)بعد getipAdress رو فرخوانی کن

static IPAddress getInternetIPAddress()
{
try
{
IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName());
IPAddress gateway = IPAddress.Parse(getInternetGateway());
return findMatch(addresses, gateway);
}
catch (FormatException e) { return null; }
}

static string getInternetGateway()
{
using (Process tracert = new Process())
{
ProcessStartInfo startInfo = tracert.StartInfo;
startInfo.FileName = "tracert.exe";
startInfo.Arguments = "-h 1 www.google.com";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
tracert.Start();

using (StreamReader reader = tracert.StandardOutput)
{
string line = "";
for (int i = 0; i < 9; ++i)
line = reader.ReadLine();
line = line.Trim();
return line.Substring(line.LastIndexOf(' ') + 1);
}
}
}

static IPAddress findMatch(IPAddress[] addresses, IPAddress gateway)
{
byte[] gatewayBytes = gateway.GetAddressBytes();
foreach (IPAddress ip in addresses)
{
byte[] ipBytes = ip.GetAddressBytes();
if (ipBytes[0] == gatewayBytes[0]
&& ipBytes[1] == gatewayBytes[1]
&& ipBytes[2] == gatewayBytes[2])
{
return ip;
}
}
return null;
}

ببین کار میکنه اما مشکلش اینه یه برنامه تو system32 خود ورندوز هست که وا میکنه به اسم traceroute
بعد میاد خروجی اونو فراخوانی میکنه میفهمه ای پی رو

aliagamon
یک شنبه 13 مرداد 1392, 21:18 عصر
اقا از این اسفاده کن قبلی رو بیخیال 100% عملیه :لبخند:
یه سایت پیدا کردم وا میکنی فقط ای پیتو میده و هیچی نداره اگه استرینگشو دانلود کنی همون ای پی رو گرفتی ایطوری:

WebClient wc = new WebClient();
textBox1.Text= wc.DownloadString(new Uri("http://icanhazip.com/"));

behzadkhan
یک شنبه 13 مرداد 1392, 22:48 عصر
با سلام

این کد در ویندوز XP کار می کند:

نشان دادن IP:
private string GetIP()
{

System.Net.IPHostEntry host;
string localIP = "?";
host = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHost Name());
foreach (System.Net.IPAddress ip in host.AddressList)
{
if (ip.AddressFamily.ToString() == "InterNetwork")
{
localIP = ip.ToString();
}
}
return localIP;
}



تنظیم IP و SubNet:
public void setIP(string ip_address, string subnet_mask)
{
System.Management.ManagementClass objMC = new System.Management.ManagementClass("Win32_NetworkAdapterConfiguration");
System.Management.ManagementObjectCollection objMOC = objMC.GetInstances();

foreach (System.Management.ManagementObject objMO in objMOC)
{
if ((bool)objMO["IPEnabled"])
{
try
{
System.Management.ManagementBaseObject setIP;
System.Management.ManagementBaseObject newIP =
objMO.GetMethodParameters("EnableStatic");

newIP["IPAddress"] = new string[] { ip_address };
newIP["SubnetMask"] = new string[] { subnet_mask };

setIP = objMO.InvokeMethod("EnableStatic", newIP, null);
}
catch (Exception)
{
throw;
}
}
}
}


باز هم تکرار می کنم در ویندوز XP تست و اجرا شده است.

منبع:
www.stackoverflow.com

با تشکر