PDA

View Full Version : سوال: امنیت در ساخت نظر سنجی



fakhravari
یک شنبه 18 دی 1390, 14:53 عصر
با سلام
دوستان راه کارهایی که برای ایجاد یه سیستم نظر سنجی در اینجا

امنیت از نظر تکرای نبودن سیستم رای دهنده

دوستان چه چیز هایی را پیشنهاد میکنند.
برای مثال سیستم نظر سنجی که تعداد زیاد نظر سنجی دارد و کاربر با انتخاب نظر سنجی به ان رای میدهد.

ip = که Change میشود و به کار نمیاد.
کوکی و .. ؟

programer-ir
یک شنبه 18 دی 1390, 15:15 عصر
کاربرایی که تو نظرسنجی شرکت می کنن عضو سایت یا نه؟؟؟

maktab
یک شنبه 18 دی 1390, 17:34 عصر
من دارم روی همین کار میکنم. به خیلی چیزا بستگی داره.
اگر نظرسنجی برای کاربران عضوه که مشکلی نیست ولی اگر برای عموم مردمه اون وقت:
میتونی از چندین روش در کنار هم استفاده کنی: ip رو در db ذخیره کن، کوکی درست کن، همچنین اگر نظرسنجی خیلی مهمه میتونی از ایمیل هم استفاده کنی

sobhan5968
یک شنبه 18 دی 1390, 17:45 عصر
اگه کارران عضو نیستن بهترین روش استفاده از کوکی هست به طور مثال میتونید کد نظرسنجی رو به صورت کدشده درون کوکی ست کنید و قبل هرنظرسنجی چک کنید . چون ای پی های هیچ کاربری دائمی نیست و با قطع و وصل شدن اینترنت ای پی هم تغییر میکنه پس بنابراین در این مورد روش خوبی نیست !

fakhravari
یک شنبه 18 دی 1390, 18:04 عصر
بله کاربران عضو نیستند ببخشید که یادم رفت.
برای کوکی چون من به تعداد زیاد نظر سنجی دارم.
چطوری همه رو کنترل کنم.
ممنون میشم با کد باشه
---------------------
ایمیل فایده نداره. ip فایده نداره . ایا کوکی راه گشان :متفکر:
ایا قابل دلیت نیست؟

programer-ir
یک شنبه 18 دی 1390, 18:13 عصر
تو تعداد کوکی ها که محدودیتی نیست گوگل نزدیگ 50 کوکی تو مرورگر من ست کرده .....
به نظر من ای پی اصلا مناسب نیست چون شرکت های adsl ای پی های مشترکینشون رو پویا تعریف می کنن این موضوع رو من بار ها امتحان کردم ای پی ام هر روز تغییر می کنه.

fakhravari
یک شنبه 18 دی 1390, 19:56 عصر
خوب اگر با کوکی پیاده سازی شود.
برای هر نظر سنجی به چه شکل پیاده سازیش کنم :متفکر:

programer-ir
یک شنبه 18 دی 1390, 22:16 عصر
HttpCookie name = new HttpCookie("localclientn");
name.Expires = DateTime.Now.AddYears(30);
name.Value = "value";
Response.Cookies.Add(name);

programer-ir
یک شنبه 18 دی 1390, 22:22 عصر
برای هر نظر سنجی یک اسم منحصر به فرد انتخاب کنید یا ای دی یا هر چیز دیگه که اون اسم کوکی شما می شه.....موقع رجوع دوباره کاربر و مشاهده نظر سنجی هم چک می شه که یک همچین اسمی دو کوکی هست یا نه مطابق اون نمایش می دید.


Request.Cookies["localclientm"] != null

fakhravari
یک شنبه 18 دی 1390, 22:35 عصر
نظر سنجی داینامیک است خوب با کد های بالا اگر id نظر سنجی بدیم به کوکی برای مثال

HttpCookie name = new HttpCookie("localclientn");
name.Expires = DateTime.Now.AddYears(30);
name.Value = "value";
Response.Cookies.Add(name);




این برای 1 نظر سنجی کار میده
خوب برای نظر سنجی بعدی که id فرق داره که نمیتوان یک ساختار بالا را داشته باشیم
چون queri string > id پاس میدیم و ما فقط یه ساختار بالا را داریم

programer-ir
یک شنبه 18 دی 1390, 22:52 عصر
نه .

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

HttpCookie name = new HttpCookie(id);
name.Expires = DateTime.Now.AddYears(30); name.Value = "true";
Response.Cookies.Add(name);




این فرایند برای هر نظر سنجی که بازدید کننده شرکت می کنه ثابت.

fakhravari
یک شنبه 18 دی 1390, 23:02 عصر
برای مثال
id = 1 شرکت کرد. و 1 کوکی با name=1 ثبت میشه.
برای id = 2 چطوری باید چک کنه
منظورم اینه که اگه HttpCookie name = new HttpCookie("1");
قسمت برای if

int id = Int32.Parse(Request.Cookies["1"].Values[0]);
if (id == kd)
{
}

منضورم اینه Replase نمیشه روی مقدار name بعدی!
مگر 1 کوکی نمی سازه. :متفکر:
چطوری id های دیگر در خودش ذخیره میکنه.
چون ما یک متغیر name تعریف کرده ایم

programer-ir
یک شنبه 18 دی 1390, 23:13 عصر
HttpCookie name = new HttpCookie(id);


تو این خط id همون اسمی که تو قسمت کوکی مرورگر ذخیره می شود و شما این id رو ست می کنید و برای چک کردن این که ایا یک کوکی مورد نظر موجود هست یا نه

if (Request.Cookies[id] != null)



همین خط مشخص می کنه کوکی با نام مورد نظر شما وجود داره یا اگر وجود داره پس بازدید کننده تو نظر سنجی شرکت کرده و گر نه شرکت نکرده

programer-ir
یک شنبه 18 دی 1390, 23:15 عصر
به کوکی های همین سایت اگه نگاه کنید نام کوکی هاش با هم متفاوت

fakhravari
دوشنبه 19 دی 1390, 01:00 صبح
خوب با کد های ارائه شده ما از یه ساختار استفاده میکنیم و برای چک کردن هم اگر با این دستور باشه if (Request.Cookies[id] != null)


سوال من اینه
آیا هر با که ما id به nem میدهیم و Response.Cookies.Add(name); میکنیم
id ها در کوکی name ذخیره میشوند و به صورت list در میان آیا ؟
مثل list.item.ad است این کوکی ها .
این قسمت متوجه نمیشم که وقتی ما id نظر سنجی گرفتیم برای بار اول مشکلی نیست ولی برای بار 2 مثل list.item.adمیشه برای کوکی

fakhravari
دوشنبه 19 دی 1390, 02:40 صبح
با سلام
من یه سمپل کامل از نظر سنجی با کامپوننت Pool درست کردم.
فقط میمونه set کردن کوکی .
ممنون میشم کدها را در برنامه کار کنید:بوس:programer-ir (http://barnamenevis.org/member.php?189274-programer-ir)
PollsResult.aspx باید در این صفحه کوکی قرار داده شود
پروژه net 4

saadi2
دوشنبه 19 دی 1390, 05:03 صبح
سلام ببین این به کارت میاد :


if (blockMode == Poll.BlockMode.COOKIE.ToString()) //If block by Cookie read the cookie to see if there is an entry for this blog
{
if (Request.Cookies["Poll"] != null && Request.Cookies["Poll"]["ID"] != null)
{
//the cookie will have comma seperated IDs of all the polls that already voted
string commaSeperatedPollIDs = Request.Cookies["Poll"]["ID"];
//split it with comma
string[] pollIDs = commaSeperatedPollIDs.Split(",".ToCharArray());
//and loop through each pollID to find whethere the current poll is already voted
foreach (string pID in pollIDs)
{
//if yes break
if (pID == hidPollID.Value)
{
isPolled = true;
break;
}
}





//Save the poll ID in cookie - to block repeated vote if the BlockMode is by Cookie
HttpCookie pollCookie;// = new HttpCookie("Poll");
string valueToStore = ""; //we store the poll IDs as comma seperated values
//the cookie already exists and some PollIDs are already there
if (HttpContext.Current.Request.Cookies["Poll"] != null && HttpContext.Current.Request.Cookies["Poll"]["ID"] != null)
{
pollCookie = HttpContext.Current.Request.Cookies["Poll"];
valueToStore = HttpContext.Current.Request.Cookies["Poll"]["ID"] + "," + pID.ToString(); //append the current PollID to the already existing Poll IDs after a comma
}
else //cookie not exists - create a new one and store the ID
{
pollCookie = new HttpCookie("Poll");
valueToStore = pID.ToString();
}
pollCookie.Values["ID"] = valueToStore;
pollCookie.Expires = DateTime.MaxValue; //this cookie will never expire
HttpContext.Current.Response.Cookies.Add(pollCooki e);

Saman Hashemi
دوشنبه 19 دی 1390, 08:00 صبح
کوکی را به راحتی میشه از کار انداخت این یکی از تنظیمات مرورگرهاست...!
در ضمن جدیدا قسمتی توی مرورگرها اضافه شده به نام Private Browsing که به صورت پیش فرض هیچ چیز روی کامپیوتر کاربر ذخیره نمیکنه پس راه حل شده را به سادگی میشه دور زد اگه براتون نتیجه مهم ازین شیوه استفاده نکنید...!

programer-ir
دوشنبه 19 دی 1390, 09:43 صبح
براتون نتیجه مهم ازین شیوه استفاده نکنید...!


جز کوکی چیز دیگه ای از بازدید کننده دست مانیست.

programer-ir
دوشنبه 19 دی 1390, 09:45 صبح
80432

این سمپل کامل راهنمایی تون می کنه

fakhravari
دوشنبه 19 دی 1390, 12:10 عصر
خوب اقا سامان چاره چیه؟

Saman Hashemi
دوشنبه 19 دی 1390, 12:49 عصر
پیش از این هم در تاپیکی دیگه نظرمو گفتم که یا باید کاربر عضو باشه یا به ازای یه ایمیل اینکار بکنید...!
که حتما باید به شیوه ای تشخیص بدید ایمیل معتبر هست...!
یا ارسال ایمیل به آدرس و تایید فرد سپس ثبت نظر(بهترین شیوه)
یا استفاده از راههایی (http://forums.asp.net/t/1500197.aspx/1)برای وجود یا عدم وجود ایمیل...!

fakhravari
دوشنبه 19 دی 1390, 13:54 عصر
:بامزه: خوب بازم نمیشه ایمیل زیاد معتبر نیست.
چون شاید 100 ایمیل یکی داشته باشه.
برای تحت ویندوز یک سری کد ها هستند که kd مادربرد و یا چیزای دیگرو میگرفتند.
برای تحت وب چنین امکانی نیست:گیج:
چون به هر حال


ip
coocki

امنیت کم > برای افراد باهوش
خوب چاره چیه :کف:

alonemm
دوشنبه 19 دی 1390, 13:59 عصر
باسلام:
دوست من اگه این قدر امنیت و نوع کسی که در نظر سنجی شرکت میکنه مهمه که تکراری نباشه باید کنترل رو بیشتر کنی ( عضویت و یا ...)
اما اگر زیاد مهم نیسیت که همین روش کوکی و IP میتونه جواب گو باشه.(با معایبی که میدونید و در پست های قبل ذکر شده).

موفق باشید.

Saman Hashemi
دوشنبه 19 دی 1390, 15:52 عصر
چون شاید 100 ایمیل یکی داشته باشه.
استثناهارو دارید بررسی میکنید مگر چندتا آدم بیکار وجود داره که 100ایمیل بفرسته بعد بره تو ایمیل بعد تایید کنه و...؟

برای تحت ویندوز یک سری کد ها هستند که kd مادربرد و یا چیزای دیگرو میگرفتند.
برای تحت وب چنین امکانی نیست
خیر فکر نکنم...!

hamid_shrk
دوشنبه 19 دی 1390, 16:09 عصر
حالا که انقدر همه چی مهم شده پس استفاده از کپچا هم باید انجام بشه دیگه که خیلی safe بشه

mahan.2002
دوشنبه 26 دی 1390, 23:24 عصر
با سلام

بنظرم کوکی خیلی راه مطمئنی نیست چون میشه راحت پاک کوکی شود ..

نمیدونم ایا راه حل دیگه ای داره یا نه...

یه سوالم خودم داشتم ایا نمیشود سیستم موجودی که کاربر در حال استفاده است رو چک کرد مثل مادربر یا مثلا هارد یا مودم رو ...

mahan.2002
دوشنبه 26 دی 1390, 23:30 عصر
در ضمن اصلان ایمیل برای نظر سنجی منظقی نیست ( برای یک نظر سنجی عمومی )

خب یدفعه بگید ثبت نام کنه!!

parlous
جمعه 30 دی 1390, 00:08 صبح
دوستان به نظر من بهترین راه استفاده از مک آدرس هستش. اگه بخواین توضیحات تکمیلی رو بذارم.

FirstLine
جمعه 30 دی 1390, 01:03 صبح
دوستان به نظر من بهترین راه استفاده از مک آدرس هستش. اگه بخواین توضیحات تکمیلی رو بذارم.

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

FirstLine
جمعه 30 دی 1390, 01:07 صبح
با سلام
با توجه به آموزه های دوستان و مطالبی هم که عنوان شده بنظر من بهترین روش را استاد عزیز "Saman Hashemi" معرفی کرده، یعنی اینکه شما در زمان دریافت نظر آدرس ایمیل بیننده را نیز در دیتابیس ذخیره کنی و اگه خواستی خیلی محکم کاری کنی بهتره که یک ایمیل فعال سازی برای کاربر ارسال کنی و پس از تایید کاربر ، رای و نظر را فعال کنی و در نتیجه نظرسنجی اضافه کنی.
با تشکر

parlous
شنبه 01 بهمن 1390, 03:30 صبح
با سلام
تحت وب و بدون نصب افزونه خاص امکان بدست آوردن مک آدرس در صفحات وب و اینترنت وجود ندارد
با تشکر
اما من اینکارو انجام دادم و خیلی هم خوب نتیجه گرفتم.:چشمک:
اگه دوستان بخوان من کد رو در c#.net میدم.

fakhravari
شنبه 01 بهمن 1390, 10:23 صبح
خوب بله این کار عملی است .
اما برای شرکت در یه نظر سنجی که دیگه این همه راه را نمیرن کاربران

parlous
شنبه 01 بهمن 1390, 11:58 صبح
خوب بله این کار عملی است .
اما برای شرکت در یه نظر سنجی که دیگه این همه راه را نمیرن کاربران

دوست عزیز کاری که کاربران باید انجام بدن یک کلیک ناقابل روی گزینه مورد نظر در نظرسنجیه.:چشمک:
ذخیره مک آدرس و بقیه کارا به عهده کامپیوتر و با کد نویسیه.
و این بهترین و امن ترین راه در نظرسنجیه.
من خودم این مشکل رو داشتم اما بعد از 1هفته بی خوابی به این روش رسیدم و خیلی هم راضی هستم. اما باز میل دوستان هست که کد رو بخوان یا نه.

maktab
شنبه 01 بهمن 1390, 12:26 عصر
اما باز میل دوستان هست که کد رو بخوان یا نه.

نیکی و پرسش!؟
علاوه بر کد، در مورد روشی که میگید هم توضیح بدید.
ممنون

fakhravari
شنبه 01 بهمن 1390, 13:38 عصر
parlous (http://barnamenevis.org/member.php?162893-parlous) مثال بزنید :متفکر:ذخیره مک آدرس و بقیه کارا به عهده کامپیوتر و با کد نویسیه.

parlous
شنبه 01 بهمن 1390, 14:17 عصر
نیکی و پرسش!؟
علاوه بر کد، در مورد روشی که میگید هم توضیح بدید.
ممنون


parlous (http://barnamenevis.org/member.php?162893-parlous) مثال بزنید :متفکر:ذخیره مک آدرس و بقیه کارا به عهده کامپیوتر و با کد نویسیه.

دوستان تنها کدی که بایذ بنویسید اینه :


public string GetMACAddress()
{
ManagementObjectSearcher objMOS = new ManagementObjectSearcher("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMOS.Get();
string MACAddress = String.Empty;
foreach (ManagementObject objMO in objMOC)
{
if (MACAddress == String.Empty)
{
MACAddress = objMO["MacAddress"].ToString();
}
objMO.Dispose();
}
MACAddress = MACAddress.Replace(":", "");
return MACAddress;
}

و مقدار macadress رو در یک textbox اضافه کنید. و وقتی کاربر روی گزینه مورد نظر کلیک کرد مقدار macaddress و شناسه آن نظرسنجی در database ذخیره میشه و دیگه نمی تونه دوباره به همان نظرسنجی رای بده.
به همین سادگی.

parlous
شنبه 01 بهمن 1390, 14:25 عصر
با سلام
تحت وب و بدون نصب افزونه خاص امکان بدست آوردن مک آدرس در صفحات وب و اینترنت وجود ندارد
با تشکر
fistline جان این هم برای وب :

<script language="javascript" type="text/javascript">
function showMacAddress() {
var obj = new ActiveXObject("WbemScripting.SWbemLocator");
var s = obj.ConnectServer(".");
var properties = s.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
var e = new Enumerator(properties);
var output;
output = '<table border="0" cellPadding="5px" cellSpacing="1px" bgColor="#CCCCCC">';
output = output + '<tr bgColor="#EAEAEA"><td>Caption</td><td>MACAddress</td></tr>';
while (!e.atEnd()) {
e.moveNext();
var p = e.item();
if (!p) continue;
output = output + '<tr bgColor="#FFFFFF">';
output = output + '<td>' + p.Caption; +'</td>';
output = output + '<td>' + p.MACAddress + '</td>';
output = output + '</tr>';
}
output = output + '</table>';
document.getElementById("box").innerHTML = output;
}
</script>

maktab
شنبه 01 بهمن 1390, 19:51 عصر
برای اینکه در asp.net از این روش استفاده کنیم فقط از روش دوم میشه استفاده کرد!؟ نحوه استفاده روش دوم رو هم آموزش بدید.
راستی من از روش اول استفاده کردم ولی ارور گرفت. از حلقه ارور گرفت. البته باید نام ابجکت هایی که درست کردید را تغییر بدید چون هر دو ابجکت یه اسم دارند.

fakhravari
شنبه 01 بهمن 1390, 20:56 عصر
دوستان تنها کدی که بایذ بنویسید اینه :


public string GetMACAddress()
{
ManagementObjectSearcher objMOS = new ManagementObjectSearcher("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMOS.Get();
string MACAddress = String.Empty;
foreach (ManagementObject objMO in objMOC)
{
if (MACAddress == String.Empty)
{
MACAddress = objMO["MacAddress"].ToString();
}
objMO.Dispose();
}
MACAddress = MACAddress.Replace(":", "");
return MACAddress;
}

و مقدار macadress رو در یک textbox اضافه کنید. و وقتی کاربر روی گزینه مورد نظر کلیک کرد مقدار macaddress و شناسه آن نظرسنجی در database ذخیره میشه و دیگه نمی تونه دوباره به همان نظرسنجی رای بده.
به همین سادگی.


ManagementObjectSearcher این جیست :متفکر:
در asp کاربرد دارد! چون الا شناسایی نمیشه

maktab
شنبه 01 بهمن 1390, 21:02 عصر
ManagementObjectSearcher این جیست :متفکر:
در asp کاربرد دارد! چون الا شناسایی نمیشه

برای شناسایی، این رو اضافه کنید:


using System.Management;


اگر باز هم نخوند روی رفرنس پروژه کلیک راست کن و اد رفرنس رو بزن بعدش از اونجا دوباره System.Management رو اضافه بکن درست میشه.

اگر کدها جواب داد خبر بده چون برای من که ارور میگیره.

fakhravari
شنبه 01 بهمن 1390, 21:14 عصر
اگر کدها جواب داد خبر بده چون برای من که ارور میگیره یعنی چی؟
من پروژه وب سایت دارم
از ورش رفرنس نمیتونم
using System.Management; کردم اما فایده ای نداره

maktab
شنبه 01 بهمن 1390, 21:22 عصر
using System.Management; کردم اما فایده ای نداره
تویه رفرنس ها اضافه کردید؟ قسمت رفرنس های پروژه.


اگر کدها جواب داد خبر بده چون برای من که ارور میگیره یعنی چی؟

من در asp.net تست کردم. نمیدونم این روش اولی جواب میده یا نه ولی کدهام رو میخونه. using... را اضافه کردم در رفرنس هام هم اضافه کردم ولی وقتی کدها را اجرا میکنم از حلقه ارور میگیره.

fakhravari
شنبه 01 بهمن 1390, 21:46 عصر
من تا جایی که میدونم و سوال کردم این امکانات در وب جواب نمیده.
به هر حال سمپل بزارین

parlous
شنبه 01 بهمن 1390, 22:17 عصر
ManagementObjectSearcher این جیست :متفکر:
در asp کاربرد دارد! چون الا شناسایی نمیشه

باید از قسمت addrefrence گزینه System.Management رو add کنید.
سپس:
using System.Management;
دیگه error نمیده.

fakhravari
یک شنبه 02 بهمن 1390, 00:14 صبح
با سلام
مشکل حل شد.
من یه کد معادل پیدا کردم
http://zadpoor.blogfa.com/post-7.aspx
ManagementObjectSearcher searcher;
string query1 = "SELECT * FROM Win32_DiskDrive";
string query2 = "SELECT * FROM Win32_PhysicalMedia";

searcher = new ManagementObjectSearcher(query1);
foreach (ManagementObject wmi_HD in searcher.Get())
if (wmi_HD["Model"] != null)
Label1.Text = wmi_HD["Model"].ToString();

searcher = new ManagementObjectSearcher(query2);
foreach (ManagementObject wmi_HD in searcher.Get())
if (wmi_HD["SerialNumber"] != null)
Label1.Text = wmi_HD["SerialNumber"].ToString();

fakhravari
یک شنبه 02 بهمن 1390, 00:33 صبح
ایا این برنامه که 2 ساعت سرش جنگ بود تحت وب جواب میده؟
روی لوکال درسته اما روی هاست کار نمیکنه:اشتباه:

M.KH-SH
یک شنبه 02 بهمن 1390, 15:52 عصر
دوستان باید بگم که کامپوننت ها رو اگه به صورت رفرنس به پروژه اضافه کنین و این پروژه های تحت form نباشه مشکلی پیش نمییاد

حالا یک سئوال::::

من کوکی به وجود اومده رو میخوام با استفاده از کد از بین ببرم باید چه کدی استفاده کنم؟؟؟

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

programer-ir
یک شنبه 02 بهمن 1390, 16:37 عصر
ManagementObjectSearcher searcher;
string query1 = "SELECT * FROM Win32_DiskDrive";
string query2 = "SELECT * FROM Win32_PhysicalMedia";

searcher = new ManagementObjectSearcher(query1);
foreach (ManagementObject wmi_HD in searcher.Get())
if (wmi_HD["Model"] != null)
Label1.Text = wmi_HD["Model"].ToString();

searcher = new ManagementObjectSearcher(query2);
foreach (ManagementObject wmi_HD in searcher.Get())
if (wmi_HD["SerialNumber"] != null)
Label1.Text = wmi_HD["SerialNumber"].ToString();


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

fakhravari
دوشنبه 03 بهمن 1390, 14:33 عصر
دوستان عزیز در باره این پست نظر بدین.
اگر سوالی دارید جدا مطرح کنید.:عصبانی:
من هنوظ جوابم نگرفتم

programer-ir
دوشنبه 03 بهمن 1390, 18:08 عصر
شماره کارت شبکه سمت کلاینت رو که نمی شه گرفت

fakhravari
دوشنبه 03 بهمن 1390, 18:54 عصر
خوب منم در پست 44 اشاره کردم . اما دوستمون دیگه جواب گو نشد parlous (http://barnamenevis.org/member.php?162893-parlous)

fakhravari
دوشنبه 03 بهمن 1390, 23:22 عصر
دوستان کسی این روش را تایید میکنه.
ایا این دوستمون محیط ویندوز را با وب اشتباه گرفته :متفکر:

parlous
سه شنبه 04 بهمن 1390, 00:43 صبح
دوستان کسی این روش را تایید میکنه.
ایا این دوستمون محیط ویندوز را با وب اشتباه گرفته :متفکر:

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

parlous
سه شنبه 04 بهمن 1390, 01:19 صبح
بازم اگه با کد مشکل دارید میتونید از این روش هم استفاده کنید:

if (theCurrentObject["MACAddress"] != null )
{
string macAdd = "MAC Address: " + theCurrentObject["MACAddress"].ToString();
MessageBox.Show(macAdd);
}
</quote>
Complete code -
<quote>
ManagementScope theScope = new ManagementScope("\\\\" + Environment.MachineName + "\\root\\cimv2");
StringBuilder theQueryBuilder = new StringBuilder();
theQueryBuilder.Append("SELECT * FROM Win32_NetworkAdapter");
ObjectQuery theQuery = new ObjectQuery(theQueryBuilder.ToString());
ManagementObjectSearcher theSearcher = new ManagementObjectSearcher(theScope, theQuery);
ManagementObjectCollection theCollectionOfResults = theSearcher.Get();
foreach (ManagementObject theCurrentObject in theCollectionOfResults)
{
if (theCurrentObject["MACAddress"] != null )
{
string macAdd = "MAC Address: " + theCurrentObject["MACAddress"].ToString();
MessageBox.Show(macAdd);
}
}

saadi2
سه شنبه 04 بهمن 1390, 02:56 صبح
<script language="javascript" type="text/javascript">
function showMacAddress() {
var obj = new ActiveXObject("WbemScripting.SWbemLocator");
var s = obj.ConnectServer(".");
var properties = s.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
var e = new Enumerator(properties);
var output;
output = '<table border="0" cellPadding="5px" cellSpacing="1px" bgColor="#CCCCCC">';
output = output + '<tr bgColor="#EAEAEA"><td>Caption</td><td>MACAddress</td></tr>';
while (!e.atEnd()) {
e.moveNext();
var p = e.item();
if (!p) continue;
output = output + '<tr bgColor="#FFFFFF">';
output = output + '<td>' + p.Caption; +'</td>';
output = output + '<td>' + p.MACAddress + '</td>';
output = output + '</tr>';
}
output = output + '</table>';
document.getElementById("box").innerHTML = output;
}
</script>

}
[/CSHARP]

سلام داداش من نتونستم از این کد استفاده کنم میشه توضیح بدید یا اینکه یک سمپل قرار بدید اینجا؟
ممنون

programer-ir
سه شنبه 04 بهمن 1390, 10:05 صبح
MessageBox.Show(macAdd);


شما همچنان دارید برنامه تحت ویندوزی می نویسید

programer-ir
سه شنبه 04 بهمن 1390, 10:11 صبح
تمام کد های شما برای سمت سرور و سمت کلاینت نیست . و این امکان در asp نیست .

programer-ir
سه شنبه 04 بهمن 1390, 10:12 صبح
http://stackoverflow.com/questions/8269140/how-to-get-mac-address-of-client-machine

fakhravari
سه شنبه 04 بهمن 1390, 13:04 عصر
با سلام
http://a-velayat.com/fakhr/Default5.aspx
دوستان امتحان کنند.
انگار این روش فایده نداره.:اشتباه:

programer-ir
سه شنبه 04 بهمن 1390, 14:16 عصر
2:37:16 PM
your MAC address: 003048BA6130


دقیقا آدرس مک هاست رو می ده

fakhravari
سه شنبه 04 بهمن 1390, 15:08 عصر
درسته. ولی نیاز ما چیز دیگری است

parlous
سه شنبه 04 بهمن 1390, 16:45 عصر
با سلام
http://a-velayat.com/fakhr/Default5.aspx
دوستان امتحان کنند.
انگار این روش فایده نداره.:اشتباه:

این که اصلا آدرس مک client رو نمیده. چون mac adrress من چیز دیگه ای هست و این یک چیز دیگه نشون می ده.

fakhravari
سه شنبه 04 بهمن 1390, 17:09 عصر
20 پست زدیم اخرش فهمیدیم این اصلا ربطی به اون نداره.
این پست بحث سر امنیت بود که شما گفتید ادرس mac که اخرشم هیچ و هیچ
.
کد مد نظر شما چی بود مگه؟

programer-ir
سه شنبه 29 فروردین 1391, 16:24 عصر
http://fa.azadnegar.com/

تو این سایت وقتی به یک خبر رای می دید دیگه دوباره به اون خبر نمی تونید رای بدید و از کوکی و ای پی هم استفاده نمی کنه ....سوال این جاست که از چی استفاده می کنه؟؟؟؟؟

Mohammadvb6
یک شنبه 06 اسفند 1391, 15:11 عصر
سلام . راه حلی پیدا شد ؟؟ یا نه ؟

silverfox
یک شنبه 06 اسفند 1391, 22:13 عصر
Zombie cookie (http://en.wikipedia.org/wiki/Zombie_cookie)
عضو شدن کاربر و چک کردن ایمیل
ذخیره کردن ip کاربر
فکر کنم همین روشا مطرح شده باشه، مسئله ای که هست اینه که ممکنه بشه این روش ها رو دور زد ولی باید دید که اصلا عقلانی هست که بیاد یه نفر این کار رو بکنه؟
حالا فرضا یه نفر اومد و این کار رو کرد شما ببیاین توی دیتابیس زمان رای رو ثبت کنین بعد بررسی کنید مثلا از ساعت 2 تا 3 10000تا رای به فلان گزینه فقط داده شده(به صورت غیر عادی و بر خلاف الگو هایی که در هر روز بوده) خوب معلوم می شه اینارو یه bot داده پس این رای ها رو می شه حذف کرد و حساب نکرد...

AliRezaPro
یک شنبه 06 اسفند 1391, 23:56 عصر
این صفحه اطلاعات خوبی به شما میده
که :

MAC addresses are NOT unique. Multiple computers CAN have the same MAC address for an interface. MAC addresses cannot be used to identify individual computers or as the sole key material in an encryption or hashing algorithm.

http://www.codeproject.com/Questions/303612/How-to-get-Mac-Address-of-Client-Machine-in-asp-ne

fakhravari
دوشنبه 07 اسفند 1391, 01:23 صبح
این صفحه اطلاعات خوبی به شما میده
که :

http://www.codeproject.com/Questions/303612/How-to-get-Mac-Address-of-Client-Machine-in-asp-ne
انگار خوب نخوندید پست های قبلی!

zerocool151
دوشنبه 07 اسفند 1391, 01:33 صبح
میشه از Mac Address هم استفاده کرد فک کنم

AliRezaPro
دوشنبه 07 اسفند 1391, 08:09 صبح
چرا جناب خوندم
مشکلتون سر بدست آوردن مک کلاینت بوده ؟

fakhravari
دوشنبه 07 اسفند 1391, 09:46 صبح
چرا جناب خوندم
مشکلتون سر بدست آوردن مک کلاینت بوده ؟
خب نمیشه عزیزوم . چطوری تو بدست میاری؟

silverfox
دوشنبه 07 اسفند 1391, 12:45 عصر
حالا گیریم که شما مک کلاینت رو هم بدست آوردین(با active x یا java که همینا روش رو خیلی محدود و بی استفاده می کنه) تغییر دادن mac address خیلی راحت تر و سریع تر از تغییر ip امکان پذیره که....

Mohammadvb6
دوشنبه 07 اسفند 1391, 13:25 عصر
مک آدرسو چه جوری تغییر میدید ؟!!!

silverfox
دوشنبه 07 اسفند 1391, 15:44 عصر
اینطوری (http://bit.ly/ZuGgD3) : )
edit:ولی واقعا لینک اول تو صفحه اول رو ببینید، به جوابتون نمی رسید؟ بعد تو همون صفحه اول سرچ چندین راه مختلف پیدا می شه، چیزی که به همین راحتی می شه در موردش اطلاع کسب کرد رو تو تاپیکی که در مورد یه مطلب دیگه هست بیام توضیح بدم؟

fakhravari
دوشنبه 07 اسفند 1391, 23:54 عصر
ای بابا.
چی دادی!

r_s1389@yahoo.com
پنج شنبه 03 بهمن 1392, 19:30 عصر
دوستان تنها کدی که بایذ بنویسید اینه :


public string GetMACAddress()
{
ManagementObjectSearcher objMOS = new ManagementObjectSearcher("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMOS.Get();
string MACAddress = String.Empty;
foreach (ManagementObject objMO in objMOC)
{
if (MACAddress == String.Empty)
{
MACAddress = objMO["MacAddress"].ToString();
}
objMO.Dispose();
}
MACAddress = MACAddress.Replace(":", "");
return MACAddress;
}

و مقدار macadress رو در یک textbox اضافه کنید. و وقتی کاربر روی گزینه مورد نظر کلیک کرد مقدار macaddress و شناسه آن نظرسنجی در database ذخیره میشه و دیگه نمی تونه دوباره به همان نظرسنجی رای بده.
به همین سادگی.
اگه قرار باشه با Ip یه کاری کرد نیازی به مک آدرس نیست
چون مک آدرس کاربران اینترنتی در ایران اکثرا 255.255.255.1 الی 254 هستش
و اما مک ISP ها که اون هم به درد نمی خوره
اصلا مک آدرس کاربردش یه چیز دیگه هستش
برای اینکه آیا کاربری با فلان Ip توی شبکه ما قرار داره یا نه که اون رو هم با عمل subneting به نوعی فیلتر میکنن

r_s1389@yahoo.com
پنج شنبه 03 بهمن 1392, 19:35 عصر
حالا گیریم که شما مک کلاینت رو هم بدست آوردین(با active x یا java که همینا روش رو خیلی محدود و بی استفاده می کنه) تغییر دادن mac address خیلی راحت تر و سریع تر از تغییر ip امکان پذیره که....
ممکنه با تغییر دادن مک آدرس از شبکه خارج بشیم آیا ؟؟؟؟