PDA

View Full Version : به دست اوردن IP کاربران



golnaz99
پنج شنبه 23 فروردین 1386, 11:11 صبح
سلام
من میخواهم IP کاربران را به دست بیاورم و در یک جدول ذخیره کنم .اگه دوستان لطف کنند و یک نمونه کد کامل بدهند ممنون میشوم.(VB.NET و تحت وب
در ضمن حدس میزدم خیلی در این مورد بحث شده باشد ولی وقتی جستجو کردم هیچ چیزی پیدا نکرد

hamed_bostan
پنج شنبه 23 فروردین 1386, 11:35 صبح
Dim ClientIPAdress As String = ""
ClientIPAdress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ClientIPAdress = Nothing Then
ClientIPAdress = Request.ServerVariables("REMOTE_ADDR")
End If

golnaz99
پنج شنبه 23 فروردین 1386, 13:07 عصر
سلام
من میخواهم از این IP برای شناسایی کاربرانی که هنوز ثبت نام نکرده اند در سبد خرید یک سیستم فروش استفاده کنم.ایا هر دفعه که سیستم DIC میشود این IP تغییر میکند؟من شنیدم که با guid میتونیم ip های منحصر به فرد بسازیم .این روش guidچه طوریه؟

hamed_bostan
پنج شنبه 23 فروردین 1386, 13:19 عصر
سلام
من میخواهم از این IP برای شناسایی کاربرانی که هنوز ثبت نام نکرده اند در سبد خرید یک سیستم فروش استفاده کنم.ایا هر دفعه که سیستم DIC میشود این IP تغییر میکند؟من شنیدم که با guid میتونیم ip های منحصر به فرد بسازیم .این روش guidچه طوریه؟


بله این ip ها در هربار اتصال تغییر می کنن چون اینها ip هایی هستند که isp یه کلاینت ها تخصیص میده مگر اینکه شخص ip ثابت داشته باشه . در رابطه با تولید ip منحصر به فرد با guid »ن اطلاعاتی ندارم . ان شالله دوستان کمک می کنند

rtech
پنج شنبه 23 فروردین 1386, 14:09 عصر
شما میتوانید از طریق کد زیر یک GUID تعریف کنید :




Dim g1 as new GUID



و مقداری که در آن ذخیره میشود همیشه یکتا و ثابت خواهد بود .
اما اگر بخواهید آنها را در دیتابیس ذخیره کنید میتوانید یک ستون از نوع uniqueidentifier تعریف کرده و IsROWGuid آن را Yes کنید تا مقادیر یکتایی داشته باشید

golnaz99
جمعه 24 فروردین 1386, 18:09 عصر
سلام
دوست عزیز من همون کاری که گفته بودید را انجام دادم و دستور insert را برای فیلدهای دیگر اجرا کردم.ولی هر دفعه در فیلد ip یک مقدار متفاوت با مقدار قبلی قرار میگیرد.(یک مقدار طولانی)
نمیدونم من اشتباه میکنم و یا guid به همین صورت عمل میکند.
وقتی برنامه روی سرور اینترنت اجرا میشود به چه صورت عمل میکند؟

golnaz99
شنبه 25 فروردین 1386, 11:39 صبح
کسی راهنمایی نمیکنه؟

Alireza_Salehi
شنبه 25 فروردین 1386, 12:18 عصر
guid یک مقدارعددی 128 بیتی هستش که اعداد منحصربفرد (البته نه کاملا - احتمال بسیار کمی هست که اعداد تکراری ایجاد کنه) ایجاد میکنه .

در ضمن وقتی ip هر دفعه تغییر میکنه چطور می خواهید کاربران رو شناسایی کنید؟

golnaz99
شنبه 25 فروردین 1386, 13:19 عصر
guid یک مقدارعددی 128 بیتی هستش که اعداد منحصربفرد (البته نه کاملا - احتمال بسیار کمی هست که اعداد تکراری ایجاد کنه) ایجاد میکنه .

در ضمن وقتی ip هر دفعه تغییر میکنه چطور می خواهید کاربران رو شناسایی کنید؟
ببینید من در یک تاپیک که در مورد سیستم فروش بود و مربوط به یک سال پیش بودخوندم که برای شناسایی کاربرانی که هنوز ثبت نام نکرده اند از ip انها استفاده میشود و این ip با guid تولید میشود.که منحصر به فرد میباشد.
احتمالا چون چند سوال دیگر در مورد سبد خرید دارم سوالم را در همون تاپیک مطرح میکنم

Alireza_Salehi
شنبه 25 فروردین 1386, 14:05 عصر
فکر کنم اینجا منظورتون باشه :http://www.barnamenevis.org/forum/showthread.php?t=29768

در مورد منحصربفرد بودن هم اشتباه کردند در MSDN که نوشته تقریبا منحصربفرد که البته چون احتمال تکراری بودنش خیلی پایینه منحصربفرد در نظر میگیرندش.


A GUID is a 128-bit integer (16 bytes) that can be used across all computers and networks wherever a unique identifier is required. Such an identifier has a very low probability of being duplicated.

ip با guid تولید نمیشه (ip شماره منحصربفرد هر کامپیوتر در شبکه (اینترنت) هست)، از guid برای تولید یک شماره شناسایی منحصربفرد برای کسی که با اون ip وارد سایت شده استفاده میشه.این روش برای وقتی خوبه که کاربر از یک کامپیوتر و با ip استاتیک از سایت شما استفاده کنه.در صورتی که کاربر عضو نباشه این روش خوبه ولی معایب خودش رو هم داره.

برای مثال فرض کنید کاربر از کامپیوتر A داره خرید میکنه ، به هر دلیلی ادامه خریدش رو در کامپیوتر B انجام میده ، در این صورت اطلاعات خریدش که با ip کامپیوتر A ثبت شدند در کامپیوتر B نشون داده نمیشن چون ip این کامپیوتر فرق داره؟

asiasi
سه شنبه 09 مرداد 1386, 09:15 صبح
سلام اگه میشه روش بدست آوردن ip کاربران در ASP.NET که بازبان #C داتنت است منو راهنمایی کنید

Nightbat
سه شنبه 09 مرداد 1386, 09:40 صبح
سلام اگه میشه روش بدست آوردن ip کاربران در ASP.NET که بازبان #C داتنت است منو راهنمایی کنید
من فقط vb رو به c# تبدیل کردم

string ClientIPAdress = "";
ClientIPAdress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ClientIPAdress == null) {
ClientIPAdress = Request.ServerVariables["REMOTE_ADDR"];
}