PDA

View Full Version : سوال: تشخیص آدرس IP شخص وارد شده به سایت



morteza271
یک شنبه 27 آذر 1390, 15:54 عصر
سلام دوستان.

چطوری میشه با استفاده از کد PHP آدرس IP سیستمی که وارد سایت شده رو بدست بیاریم و توی دیتابیس ذخیره کنیم.اگه روشش هم بهینه باشه بهتره!
اگه کسی نمونه برنامه یا کدی داره برام بذاره ممنون میشم.(البته خودم همچنان در حال جستجو کردن هستم)
با تشکر فراوان

alimanam
یک شنبه 27 آذر 1390, 16:30 عصر
با سلام

من php کار نیستم اما فکر میکنم این لینک (http://wiki.jumba.com.au/wiki/PHP_Get_user_IP_Address) بتونه کمکت کنه .

موفق باشید ./

ravand
یک شنبه 27 آذر 1390, 17:47 عصر
من فكر ميكنم مك آدرس سيستم رو پيدا كني بهتر از آي پي سيستم هست . چون اينطوري مي توني بفهمي واقعا چه كسي وارد سيستمت شده

narsic
دوشنبه 28 آذر 1390, 14:33 عصر
دوست عزیز ravand بدست آوردن Mac Address روش مناسبی نیست چون همه ی مرورگرها پشتیبانی نمیکنن و محدودیت هایی بسیاری هم دارید
برای بدست آوردن آدرس آی پی هم از کد زیر استفاده کنید

$_SERVER[''REMOTE_ADDR]
برای اطلاعات بیشتر هم به لینک زیر برو
http://ir.php.net/manual/en/reserved.variables.server.php
موفق باشید

رضا قربانی
دوشنبه 28 آذر 1390, 20:51 عصر
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}

$ip_f = array();
list($ip_f[0],$ip_f[1],$ip_f[2],$ip_f[3],) = explode(".", $ip);

$r_ip = $ip_f[0].'.'.$ip_f[1].'.'.$ip_f[2];





متغیر ip شماره آی پی رو دقیق بهتون نشون می ده
متغیر r_ip رنج آی پی رو بهتون نشون می ده

موفق باشید

ravand
دوشنبه 28 آذر 1390, 21:05 عصر
آخه مشكل اينجاست كه اين آي پي هم همه اش در حال تغيير هست . حتي برخي شركت هاي ارائه دهنده ي اينترنت كه adsl ارائه ميدن آي پي كاربرانشون بعد از قطع و وصل اينترنت تغيير ميكنه.

ravand
دوشنبه 28 آذر 1390, 21:08 عصر
دوست عزیز ravand بدست آوردن Mac Address روش مناسبی نیست چون همه ی مرورگرها پشتیبانی نمیکنن و محدودیت هایی بسیاری هم دارید
برای بدست آوردن آدرس آی پی هم از کد زیر استفاده کنید

$_SERVER[''REMOTE_ADDR]
برای اطلاعات بیشتر هم به لینک زیر برو
http://ir.php.net/manual/en/reserved.variables.server.php
موفق باشید

الان شما گفتيد كه مشكل مرورگر ها هستن. مگه اين روش يافتنش با php نيست چه ربطي به مرورگر داره؟

narsic
سه شنبه 29 آذر 1390, 00:00 صبح
ravand (http://barnamenevis.org/member.php?147061-ravand) عزیز خیر Mac Address رو شما نمیتونید با هیچ زبان سمت سروری به دست بیارید چون یک مقدار سمت کلاینت هستش تنها راهه به دست آوردن این مقدار استفاده از جاوا اسکریپت هست که اونم مشکلات مرورگری خودش رو داره
موفق باشید

ravand
سه شنبه 29 آذر 1390, 14:59 عصر
ببخشيد من يه سري كد php پيدا كردم كه ميتونه مك آدرس رو چاپ كنه.

<?php
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;
?>
توي برنامه ي command prompt دستور ipconfig/all رو وارد كنيد فيزيكال آدرس همان مك آدرس است.

javadt
سه شنبه 29 آذر 1390, 23:50 عصر
توسط دستور بالا مك رو دريافت مي كنيد
اما اگر كاربر روي سيستمش نرم افزاري مثل VMware Workstation نصب كرده باشه به دليل اينكه اين نرم افزار براي ويندوز خودش Local Area Connection مجازي مي سازه توي ويندوز ما
اگر شما از اين دستور استفاده كنيد چون فقط مك اولين كانكشن رو بر مي گردونه و كانكشن هاي مجازي اغلب اول ليست هستند احتمال اينكه شما مك حقيقي سيستم رو دريافت نكنيد زياد هست

narsic
پنج شنبه 08 دی 1390, 16:21 عصر
ببخشيد من يه سري كد php پيدا كردم كه ميتونه مك آدرس رو چاپ كنه.

<?php
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;
?>
توي برنامه ي command prompt دستور ipconfig/all رو وارد كنيد فيزيكال آدرس همان مك آدرس است.

این کد فقط میتونه MAC سروری که روش اجرا میشه رو بدست بیاره (که البته در اکثر سرور های اشتراکی استفاده از دستور system غیر مجاز است پس روی اون ها هم عمل نمیکنه)
پس با این تعریف این کد همیشه یک MAC رو به شما میده که اونم MAC سرور هست نه MAC سیستم کاربر .
همه گی موفق باشید