PDA

View Full Version : به دست آوردن نام کامپیوتر سیستم کلاینت وصل شده به اینترنت



hamid1
سه شنبه 21 مرداد 1393, 20:46 عصر
من یک سایت با asp.net نوشته ام. این سایت به طور مشخص فقط 9 کلاینت دارد که این کلاینت ها در شهرهای مختلفی قرار دارند و از طریق اینترنت به سرور مرکزی در تهران متصل شده و قرار است که هر سیستم کلاینت که از طریق اینترنت به سرور متصل می شود و برای پایگاه داده موجود بر روی سرور اطلاعات ارسال می کند به گونه ای مشخص شود که اطلاعات ارسال شده از طریق کدام یک از کلاینت ها بوده است که بعد در گزارشگیری از آن استفاده شود.
من ابتدا برای هر یک از این کلاینت ها یک نام کاربری و رمز تعریف کردم که با آن بتوانند لاگین شده و سپس اطلاعات را ارسال کنند که این روش از طرف درخواست دهنده سایت مناسب به نظر نیامد و گفتند که نمی توانند با هر بار روشن کردن سیستم کلاینت و وصل شده به اینترنت با نام کاربری و رمز وارد سایت شوند. درخواست آنها این بود که بلافاصله با وصل شدن به اینترنت و زدن ادرس وب سایت سیستم کلاینت برای سرور شناسایی شود.
می خواستم یک ip ثابت به هر کلاینت بدهم و در بانک اطلاعاتی هم آن را به عنوان کلید اصلی جدول مربوط به اطلاعات کلاینت نگه دارم و با دست آوردن ip سیستم های کلاینت این کار را انجام دهم ولی جایی خواندم که اگر سیستم کلاینت با dialup به اینترنت متصل شوند هر سری که متصل می شوند یک ip جدید به آن سیستم داده می شود پس همیشه دارای یک ip ثابت نیست که من آن را ملاک گزارش کارکرد آن کلاینت قرار دهم ممکن ip آن امروز با فردا فرق کند.
پس به این فکر افتادم که از نام کامپیوتر سیستم کلاینت که همیشه ثابت است استفاده کنم ولی نمی دانم که چطور نام کامپیوتر سیستم کلاینت را به دست آورم.
اگر امکان دارد من را کمک کنید و باز اگر برای این کار راه حلی وجود دارد کد آن را نیز برای من بگذارید تا یک دنیا ممنون شما باشم چون کار من خیلی خیلی حیاتی است و باید حتما پس فردا کدنویسی سیستم را تمام کنم و کار را تحویل دهم.

hamid1
چهارشنبه 22 مرداد 1393, 18:34 عصر
یعنی اصلا امکان این کار وجود ندارد که به نام کامپیوتر کلاینت دسترسی داشت؟
آیا راه حل دیگری برای این مشکل وجود دارد؟

parvizwpf
چهارشنبه 22 مرداد 1393, 18:42 عصر
http://forums.asp.net/t/821809.aspx?Get+Client+Computer+Name

shahram hosseini
چهارشنبه 22 مرداد 1393, 20:24 عصر
http://forums.asp.net/t/821809.aspx?Get+Client+Computer+Name
من با کد زیر جواب گرفتم.

string IP = Request.UserHostName;
string compName = DetermineCompName(IP);

public static string DetermineCompName(string IP)
{
IPAddress myIP = IPAddress.Parse(IP);
IPHostEntry GetIPHost = Dns.GetHostEntry(myIP);
List<string> compName = GetIPHost.HostName.ToString().Split('.').ToList();
return compName.First();
}

hamid1
چهارشنبه 22 مرداد 1393, 23:46 عصر
خیلی ممنون از دوستان که به سوال من جواب دادند
با روش گفته شده در بالا من هم در حالی که پروژه بر روی سیستم خودم است و هنوز بر روی هاست بارگذاری نکرده ام جواب گرفتم ولی وقتی سایت را بر روی هاست بارگذاری می کنم و صفحه مورد نظر را از طریق اینترنت باز می کنم وجود این خط کدها که در رویداد page_load قرار دارد باعث می شود که اصلا آن صفحه باز نشود و پیغام خطا بدهد. فکر می کنید دلیل این چه چیزی می تواند باشد. دلیل آن می تواند استفاده از dns باشد. حالا باید چه تنظیماتی را انجام دهم که از طریق اینترنت جواب هم بگیرم؟ تنظیمات باید بر روی سیستم من انجام شود یعنی می تواند اشکال از سیستم من باشد؟ در ضمن من از اینترنت پر سرعت که توسط شرکت مخابرات گرفته ام استفاده می کنم.
ممنون