PDA

View Full Version : بدست آوردن IP در شبکه محلی



systam
پنج شنبه 06 شهریور 1393, 20:57 عصر
سلام
توی سایت رو گشتم کد زیاده ولی هر کدوم رو امتحان کردم نشد

من با این کد زمانی کلاینتی فرمان پرینت رو ارسال میکنه مشخص کنه کدام سیستم بوده

protected string GetLocalPCIP()
{
string LocalIP = null;
System.Net.IPHostEntry IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHost Name());
foreach (System.Net.IPAddress IPAddress in IPHostEntry.AddressList) {
if (IPAddress.AddressFamily.ToString() == "InterNetwork") {
LocalIP = IPAddress.ToString();
}
}
return LocalIP;
}
و برای فراخوانیش
GetLocalPCIP().ToString


برنامه روی توی سیستم که اجرا میکنم درست نمایش میده ولی از سیستم های دیگه که پرینت میزنند نام سیستمی که برنامه اجرا هست رو نمایش میده

NASA's Spaceman
جمعه 07 شهریور 1393, 10:30 صبح
دوست عزیز دقیقا منظورت رو نفهمیدم
میشه بیشتر توضیح بدی؟
با سپاس SPaceman

systam
جمعه 07 شهریور 1393, 10:50 صبح
سلام
این کدی که گذاشتم میاد ip سیستمی که در شبکه محلی worgroup بدست میاره
زمانی پرینت رو به پرینتر اشتراکی در شبکه ارسال میکنه بیاد ip سیستم رو برای مشخص کنه که کدام سیستم بوده
این کد رو من در یک سیستم که ip :192.168.1.104 هست تست کردم به راحتی ip رو نمایش داد ولی از یک سیستم دیگه پرینت زده میشه که ip :192.168.1.101 هست
میاد همون ip سیستمی که برنامه درش بازه رو نمایش میده
یه جای کار میلنگه

NASA's Spaceman
جمعه 07 شهریور 1393, 12:43 عصر
این کد رو چک کن ببین مشکلت حل میشه
namespace NKUtilities {
using System;
using System.Net;

public class DNSUtility
{
public static int Main (string [] args)
{

String strHostName = new String ("");
if (args.Length == 0)
{
// Getting Ip address of local machine...
// First get the host name of local machine.
strHostName = DNS.GetHostName ();
Console.WriteLine ("Local Machine's Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}

// Then using host name, get the IP address list..
IPHostEntry ipEntry = DNS.GetHostByName (strHostName);
IPAddress [] addr = ipEntry.AddressList;

for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine ("IP Address {0}: {1} ", i, addr[i].ToString ());
}
return 0;
}
}
}
با سپاس Spaceman

NASA's Spaceman
جمعه 07 شهریور 1393, 13:04 عصر
این یکی رو خودم نوشتم ولی تو محیط شبکه تستش نکردم
لطفا تستش کن و بهم بگو که تو شبکه هم جواب میده یا نه
string sHostName = Dns.GetHostName(); IPHostEntry ipE = Dns.GetHostByName(sHostName);
IPAddress[] IpA = ipE.AddressList;
for (int i = 0; i < IpA.Length; i++)
{
MessageBox.Show("IP Address {0}: {1} " + i + "\n" + IpA[i].ToString());
}
با سپاس Spaceman

systam
شنبه 08 شهریور 1393, 20:58 عصر
سلام
کد دومیه جواب نداد
و کد اولی رو چطوری در برنامه استفاده کنم

NASA's Spaceman
شنبه 08 شهریور 1393, 21:25 عصر
کد دوم مشکلش چی بود؟
با سپاس Spaceman

systam
شنبه 08 شهریور 1393, 21:33 عصر
کد دوم مشکلش چی بود؟
با سپاس Spaceman
سلام
بازم ip سیستمی که برنامه در اون داره اجرا میشه رو نمایش میده ؟!

systam
یک شنبه 09 شهریور 1393, 23:30 عصر
کسی نیست جواب بده

systam
سه شنبه 11 شهریور 1393, 21:44 عصر
سلام
این برنامه ای ضمیمه کردم توی یک شبکه workgroup پرینتر های ارسالی به پرینتر رو برای من لیست میکنه ولی یک مشکل داره که از هر سیستمی که فرمان پرینت رو ارسال میکنی
باید IP سیستم درخواست چاپ رو نمایش بده
میاد IP سیستمی که برنامه در اون (روی سیستم) در حال اجراست رو نمایش میده
از دوستان تقاضا دارم کسی میتونه کوچیکترین کمکی میتونه بکنه دریغ نکنه
یا علی

systam
چهارشنبه 12 شهریور 1393, 23:18 عصر
یعنی این سوال اینقدر سخته که هیچکس نمیتونه جوابشو بده

systam
دوشنبه 17 شهریور 1393, 23:48 عصر
12 نفر برنامه رو دانلود کردند
نظری ندارند ؟