PDA

View Full Version : سوال: چطوری میشه مک آدرس کاربر رو با php بدست آورد؟



hamidhassas
پنج شنبه 15 خرداد 1393, 09:38 صبح
من میخوام مک آدرس کاربری که به سایت متصل شده رو بدست بیارم یک کلاس به آدرس زیر پیدا کردم ولی نمیدونم باید چطوری ازش استفاده کنم

http://www.phpclasses.org/package/1942-PHP-Get-the-MAC-address-of-a-LAN-client-or-server-PC.html

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

leaping
پنج شنبه 15 خرداد 1393, 09:52 صبح
من میخوام مک آدرس کاربری که به سایت متصل شده رو بدست بیارم یک کلاس به آدرس زیر پیدا کردم ولی نمیدونم باید چطوری ازش استفاده کنم

http://www.phpclasses.org/package/1942-PHP-Get-the-MAC-address-of-a-LAN-client-or-server-PC.html

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

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

This class works only under Windows 2000 or later and can retrieve the MAC
address of either the network card associated to the IP address of the current
Web server or the client accessing to it.

hamidhassas
پنج شنبه 15 خرداد 1393, 10:50 صبح
کد زیر هم هست اما مشکل اینه که روی لوکال کار میکنه روی هاست نه بعدشم آدرس MAC چاپ شده اشتباه میده یعنی اگر شما رو سیستمتون چند کار شبکه داشته باشید مثل من آدرس آخرین کارت شبکه رو چاپ میکنه نه اون کارت شبکه ای که باهاش به اینترنت متصل هستید و وارد سایت شدید



< ?php
/*
* Getting MAC Address using PHP
* Md. Nazmul Basher
*/
ob_start(); // Turn on output buffering
system('ipconfig /all'); //Execute external program to display output
$mycom=ob_get_contents(); // Capture the output into a variable
ob_clean(); // Clean (erase) the output buffer
$findme = "Physical";
$pmac = strpos($mycom, $findme); // Find the position of Physical text
$mac=substr($mycom,($pmac+36),17); // Get Physical Address
echo $mac;
?>


البته کد زیر هم هست اما کل MAC های سیستم رو چاپ میکنه حالا چطوری میشه از داخلش اون MAC کی داخل اینترنت هستی رو فقط بیرون بکشی نمیدونم (جهت تست فقط رو هاست جواب میده نه لوکال)



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Getting MAC Address From Javascript(IE Only)</title>

<script language="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>

</head>
<body>
<input type="button" value="Show MAC Address" onClick="showMacAddress()" />
<div id="box">
</div>
</body>
</html>

سوداگر
پنج شنبه 15 خرداد 1393, 15:01 عصر
آدرس مک کاربر رو نمیتونید بگیرید (با PHP چنین دسترسی ای ندارید) و کدهای موجود مک سرور رو میده اگه لوکال باشه مک سیستم خودتون رو میده

hamidhassas
پنج شنبه 15 خرداد 1393, 15:05 عصر
آدرس مک کاربر رو نمیتونید بگیرید (با PHP چنین دسترسی ای ندارید) و کدهای موجود مک سرور رو میده اگه لوکال باشه مک سیستم خودتون رو میده

:متعجب::متعجب:
نمیشه!! پس اینجا رو ببین
http://hassas-computer.com/mac.html
جد و آباد کل مک آدرس سیستمت رو میکشه بیرون

سوداگر
پنج شنبه 15 خرداد 1393, 15:12 عصر
چون روی سیستم خودتون کدها رو اجرا کردین شما اینجوری فکر میکنید...
کدها رو روی یه هاست واقعی امتحان کنید ببینم باز هم مک سیستم شما رو چاپ میکنه؟؟؟
ضمنا اون لینک که دادید نتونست چیزی چاپ کنه اونهم با پسوند html :لبخند:
اگه سورس صفحه رو نگاه کنید میبینید جاوااسکریپت هست نه PHP
<script language="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>

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

joker
پنج شنبه 15 خرداد 1393, 15:15 عصر
:متعجب::متعجب:
نمیشه!! پس اینجا رو ببین
http://hassas-computer.com/mac.html
جد و آباد کل مک آدرس سیستمت رو میکشه بیرون

این سایت که باز نشد ولی :

php یک زبان کاملا سمت سرور هست و تحت هیچ شرایطی به مک آدرس کامپیوترهای بازدید کننده ش دسترسی نداره.

اصول شبکه ، اصول لایه های شبکه و این موارد چیزی نیست که قابل تغییر باشه.

کد دومی هم گزاشتید با استفاده از ActiveXObject عمل میکنه که فقط روی مرورگرهای محافظت نشده کار میکنه و عملا اجرای اسکریپت روی کلاینت هست و باز هم کاری به php نداره.

hamidhassas
پنج شنبه 15 خرداد 1393, 15:17 عصر
این سایت که باز نشد ولی :

php یک زبان کاملا سمت سرور هست و تحت هیچ شرایطی به مک آدرس کامپیوترهای بازدید کننده ش دسترسی نداره.

اصول شبکه ، اصول لایه های شبکه و این موارد چیزی نیست که قابل تغییر باشه.
از هر گونه پروکسی استفاده کنی باز نمیشه

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

119915

rezakho
پنج شنبه 15 خرداد 1393, 15:23 عصر
نمیدونم چرا سایت اینطوری شده، یک مباحث و مواردی مطرح میشه، فرد نمیدونه جواب بده، جواب نده! آدم حیرت زده میشه!
اگر میدونی چرا میپرسی؟!، اگر هم نمیدونی وقتی جوابت رو میدند گوش کن
این کد شما یک کد جاوااسکریپته نه Php که از طریق activeX و فقط در IE کار میکنه، تازه اگر در همه نسخه ها کار کنه!

hamidhassas
پنج شنبه 15 خرداد 1393, 15:30 عصر
نمیدونم چرا سایت اینطوری شده، یک مباحث و مواردی مطرح میشه، فرد نمیدونه جواب بده، جواب نده! آدم حیرت زده میشه!
اگر میدونی چرا میپرسی؟!، اگر هم نمیدونی وقتی جوابت رو میدند گوش کن
این کد شما یک کد جاوااسکریپته نه Php که از طریق activeX و فقط در IE کار میکنه، تازه اگر در همه نسخه ها کار کنه!

این یک نمونه بود تو google گشتم کد php هم هست ولی سورس کد هایی که گزاشتن رو نمیشه دانلود کرد به صورت متن هست یکی دو تا رو چک کردم جواب میده مشکل اینجاس اگه سیستم چند کارت شبکه داشته باشه فقط آخرین آدرس مک کارت شبکه آخری رو میده نه اونی که باهاش به اینترنت متصل هستی

دوما تو خیلی از سورس کد هایی که دیدم اول ip شما رو میگیره بعد بر اساس اون ip میاد مک آدرس همون کارت شبکه رو چاپ میکنه مشکل اینجاس اکثرا یا طرز استفادش رو من بلد نیستم کرد

http://stackoverflow.com/questions/5074139/how-to-get-mac-address-of-client-using-php
یا
http://www.webmasterworld.com/forum88/4312.htm
یا کلی دیگه تو گوگل سرچ کن IP address and possibly the MAC address using PHP

rezakho
پنج شنبه 15 خرداد 1393, 15:44 عصر
ببین عزیزم

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

دومی هم میاد از پروتکل ARP استفاده میکنه، این پروتکل فقط در شبکه های LAN که روتر و getway ندارند کار میکنه، نه در اینترنت، همین نکته رو توی لینک هم توضیح داده، یعنی کلاینت ها باید مستقیم و بدون هیچ روتر و gatway به سرور متصل بشند!!!

اوکی؟!

joker
پنج شنبه 15 خرداد 1393, 16:54 عصر
عزیزم بین "javascript و ActiveX وIE , FireFox , chrome و PHP و HTML و LAN و WAN و لایه دوم و سوم شبکه و انواع پروتکلهای موجود ! و همینطور احیانا تمام چیزهایی که توی اینترنت هستند" فرق بزار تا مشکلت حل بشه ایشالا :)


این چیزی که شما نوشتی شدنی هست ولی ربطی به php نداره. کاربر در مرورگرش ( حتما IE ) باید اجازه اجرای کد اکتیوایکس را موقع دیدن آدرس سایت فلان بده و پس از این مرحله کد اکتیوایکس روی کلاینت با سطح دسترسی کامل به سیستم اجرا میشه و مقادیر مد نظرشو میگیره و میفرسته به یک لینک روی فلان سایت یا سرور که اون هم از این مقادیر اطلاع داشته باشه. حالا این لینک میتونه به زبان php نوشته شده باشه :)