PDA

View Full Version : گرفتن نام کامپیوتر



ramin149
پنج شنبه 06 مهر 1391, 11:36 صبح
برای نشان دادن تعداد بازید کنندکان در یک وب سایت از کدزیر استفاده میکنم

HttpRequest a=baset.Rrquest
(ResPonse.Write(a.userHostAdress

حال برای اینکه همزمان با گرفتن ip,نام کامپیوتر را بگیریم از چه قطعه کدی استفاده مکنیم؟؟

Saman Hashemi
پنج شنبه 06 مهر 1391, 21:24 عصر
امکانپذیر نیست دوست عزیز مگر اینکه از روشهایی مثل ActiveX استفاده کنی که به هیچ عنوان پیشنهاد نمیشه...!

ramin149
پنج شنبه 06 مهر 1391, 23:25 عصر
دوست عزیز من می خواهم یک آمار سایت بنویسم . اما با گرفتن تنها Ip کاربر مشکل دارم و آن مشکل این که اگر تعدادی کامپیوتر در یک شرکت یا اینکه از یک سرور اینترنت می گیرند تقریبا 70 % آنها با Ip یکسانی می باشند حالا به نظر شما چه چیز دیگه ای با Ip کاربر بگیرم که تعداد دقیق کاربران رو به دست بیاورم . ؟؟؟

mohsen.nsb44
جمعه 07 مهر 1391, 10:21 صبح
دوست عزیز من می خواهم یک آمار سایت بنویسم . اما با گرفتن تنها Ip کاربر مشکل دارم و آن مشکل این که اگر تعدادی کامپیوتر در یک شرکت یا اینکه از یک سرور اینترنت می گیرند تقریبا 70 % آنها با Ip یکسانی می باشند حالا به نظر شما چه چیز دیگه ای با Ip کاربر بگیرم که تعداد دقیق کاربران رو به دست بیاورم . ؟؟؟
به نظر من ایپی روش مناسبی نیست
فرض کنید یک کاربر با ایپی ایکس ورود کرده و یک عدد به امار اضافه شده
و دیگه این ایپی عددی رو به امار اضافه نمیکنه
حالا این ایپی به شخص دیگری توسط شرکت های اینترنتی داده بشه تکلیف اون فرد چی میشه؟

fakhravari
جمعه 07 مهر 1391, 10:39 صبح
یه کوکی بزار تا اگه میخواهید از اون مثال هم استفاده کنی امار زیاد نشه
کوکی بزاری اول اونو چک کنی بعد به امار + کن

ramin149
جمعه 07 مهر 1391, 16:09 عصر
- دوست عزیز (mohsen.nsb44 (http://barnamenevis.org/member.php?141525-mohsen.nsb44)) من خودم هم با Ip مشکل دارم و اینکه یکتا نیست برای همین دنبال نام کامپیوتر کاربر بودم اما بچه ها می کن این کار نشدنی .
- درباره کوکی زیاد جالب نیست زیرا کاربران می تونند کوکی های خود را پاک کنند و دوباره وارد سایت شوند و این یک آمار نادرست به مدیر سایت نشان می ده .

موقعی که این تاپینک رو زدم نظریه ام این بود که Ip کاربری رو با نام کامپیوتر طرف رو در پایگاه داده چک کنم اگر دوتاشون در جدول وجود نداشت آنگاه Insert رو انجام دهم و مقدار افراد آنلاین رو افزایش دهم .
اما مشکلم الان با نام کامپیوتر و چیزه دیگری به ذهنم نمی رسه که جایگزین این مورد کنم که تقریبا به صورت یکتا باشه . لطفا دوستان در این مورد راهنمایی کنند .

mohsen.nsb44
جمعه 07 مهر 1391, 16:50 عصر
- دوست عزیز (mohsen.nsb44 (http://barnamenevis.org/member.php?141525-mohsen.nsb44)) من خودم هم با Ip مشکل دارم و اینکه یکتا نیست برای همین دنبال نام کامپیوتر کاربر بودم اما بچه ها می کن این کار نشدنی .
- درباره کوکی زیاد جالب نیست زیرا کاربران می تونند کوکی های خود را پاک کنند و دوباره وارد سایت شوند و این یک آمار نادرست به مدیر سایت نشان می ده .

موقعی که این تاپینک رو زدم نظریه ام این بود که Ip کاربری رو با نام کامپیوتر طرف رو در پایگاه داده چک کنم اگر دوتاشون در جدول وجود نداشت آنگاه Insert رو انجام دهم و مقدار افراد آنلاین رو افزایش دهم .
اما مشکلم الان با نام کامپیوتر و چیزه دیگری به ذهنم نمی رسه که جایگزین این مورد کنم که تقریبا به صورت یکتا باشه . لطفا دوستان در این مورد راهنمایی کنند .



اين مقاله شامل ترفندهايی جهت بدست آوردن مشخصات سيستم مانند نام ماشين، ورژن سيستم عامل و... و همچنين کاربردهای آنهاست. در اين مقاله به بررسی روشهايی پرداخته ميشود که به کمک آن می‌توان چند مشخصه از مشخصات سيستم را بدست آورد و از آنها در برنامه‌های کاربردی خود استفاده کرد. اين ويژگیها با استفاده از فضانام System.Environment بدست می آيند. کلاس Environment شامل اطلاعاتی در مورد محيط کار و پلات‌فرم حاضر روی سيستم و همچنين وسايلی در اين زمينه می باشد. اين کلاس نمی‌تواند به ارث برده شود.

نام ماشين (MachineName):
به کار بردن خصوصيت MachineName از اين کلاس نام NetBIOS کامپيوتر مربوطه را برمی‌گرداند. با بکار بردن کد زير در رويداد کليک يک Button می‌توان نام ماشين را در يک جعبه متن نمايش داد:



TextBox1.Text = System.Environment.MachineName.ToString


ورژن سيستم عامل (OSVersion):
با استفاده از خصوصيت OSVersion می‌توانيد ورژن سيستم عامل کامپيوتر کاربر را شناسايی کنيد. برای مثال با بکار بردن کد زير روی ويندوز ايکس پی، عدد 5.1.2600 به عنوان نتيجه برگردانده ميشود.



TextBox1.Text = System.Environment.OSVersion.ToString
از موارد استفاده اين خصوصيت می‌توان به کنترل نسخه ويندوز قبل از اجرای برنامه اشاره کرد. به عنوان مثال اگر برنامه شما برای اجرا روی ويندوز ايکس پی نوشته شده است با کنترل مقدار خروجی اين خصوصيت از اجرای آن روی نسخه‌های پائين‌تر ويندوز جلوگيری شود.

دايرکتوری سيستم (SystemDirectory):
خصوصيت SystemDirectory، نام دايرکتوری سيستم کاربر را برمی‌گرداند.

TextBox1.Text = System.Environment.SystemDirectory.ToString


نام دامنه (UserDomainName):
اين خصوصيت نام دامنه شبکهء کامپيوتر ميزبان را اعلام ميکند. مقدار اين خصوصيت به طور معمول همان نام کامپيوتر ميزبان است. برنامه شما بايد تحت ويندوز ان تی 3.1 و يا بالاتر از به اجرا درآيد؛ درغيراينصورت يک استثناء برپا خواهد شد (PlatformNotSupportedException).



TextBox1.Text = System.Environment.UserDomainName.ToString


نام کاربر (UserName):
مقدار خروجی اين خصوصيت نام کاربری شخصی است که به سيستم وارد شده است. این خصوصيت می‌تواند جهت شناسایی کاربر حاضر در سيستم به کار گرفته شود و از آن برای کنترل دسترسی به برنامه و اهداف امنيتی بهره برد. از ديگر کاربرد‌های اين خصوصيت، سفارشی کردن برنامه برای هر کاربر است.



TextBox1.Text = System.Environment.UserName.ToString


ورژن CLR ‏(Version):
اين خصوصيت نگارش زبان معمول زمان اجرا (Common Language Runtime) را برمی‌گرداند.



TextBox1.Text = System.Environment.Version.ToString


TickCount:
اين ويژگی يکی از ويژگيهای جالب ويندوز است که کاربردهای فراوانی دارد. اين خصوصيت يک عدد 32 بيتی را برمی‌گرداند که نشان دهندهء زمانی است (بر حسب ميلی ثانيه) که از روشن شدن سيستم ميگذرد. اين مقدار از تايمر سيستم گرفته ميشود و در يک متغير عددی 32-بيتی علامتدار ذخيره ميشود. با توجه به اينکه اين مقدار 32 بيت طول دارد، بنابراين اگر سيستم شما 24.9 روز روشن بماند، اين مقدار صفر شده و ازنو شروع به شمردن ميکند. دقت کنيد اين خصوصيت نمی تواند کمتر از 500 ميلی ثانيه باشد. با بکار بردن کد زير ميتوان اين مقدار را در يک جعبه متن نمايش داد:



TextBox1.Text = System.Environment.TickCount.ToString
از جمله کاربردهای خصوصيت TickCount ميتوان به محدود کردن زمان استفاده از کامپيوتر توسط کاربر اشاره کرد که ميتواند کاربردهای فراوانی داشته باشد.

نکته: توجه داشته باشيد که TickCount با Tick تفاوت دارد. Tick عددی است با وقفه های به مدت 100 نانو ثانيه که شامل مدت زمانی است که از ساعت 12:00am مورخ 1/1/0001 ميگذرد. اين خصوصيت را ميتوانيد با استفاده از System.DateTime.Now.Ticks بدست بياوريد.

منبع : http://www.persiadevelopers.com

zerocool151
جمعه 07 مهر 1391, 23:26 عصر
خوب از Mac Address استفاده کن
کاملا یونیکه

fakhravari
جمعه 07 مهر 1391, 23:52 عصر
با سلام
دوستان این پست ادامه ندید.
گرفتن نام کامپیوتر

اگه بشه فقط نام سرور میگیره و کلاینت دسترسی ندارید

ramin149
یک شنبه 09 مهر 1391, 10:32 صبح
خوب از Mac Address استفاده کن
کاملا یونیکه
دوست عزیز آیا این کد mac address کارت شبکه کاربران رو بهمون می ده یا mac address مودم اینترنت کاربر رو ؟
و اینکه دستوری برای این کار دارید یا نه ؟؟؟
با تشکر .

malloc
پنج شنبه 23 آذر 1391, 01:37 صبح
واقعا راحله اصولی نداره اینکار؟؟؟