PDA

View Full Version : تبدیل ای پی به عدد



aleas2
چهارشنبه 23 اسفند 1391, 10:55 صبح
همانطور که میدونین تابع $_SERVER[REMOTE_ADDR] ای پی کاربر رو میده و خروجیش بصورت

AA.BB.CC.DD

حالا چطور میتونم این ای پی رو با این فرمول به عدد تبدیل کنم

CODE]AA*(2 ^ 24)+BB*(2 ^ 16)+cc*(2 ^ 8)+dd*(2 ^ 0)[/CODE]


بعد از پاسخ این سوال هم بخوانین(
[
برای اینکه ببینم این ای پی
$_SERVER[REMOTE_ADDR]
بین
127.0.0.0 تا 127.100.255.255
است از همین روش تبدیل ای پی به عدد که از شما پرسیدم استفاده کنم درسته)

رضا قربانی
چهارشنبه 23 اسفند 1391, 11:28 صبح
تابع : explode

$Reza=explode('.','127.100.255.255');
خروجی رو به صورت آرایه میده و شما می تونید بر روی آرایه کارهاتون رو انجام بدید و در انتها عملیات رو به هم بچسبونید و یه آی پی خودتون رو تولید کنید.

MMSHFE
چهارشنبه 23 اسفند 1391, 11:34 صبح
فکر کنم کاری که شما لازم دارین رو تابع ip2long خود PHP انجام میده.

aleas2
چهارشنبه 23 اسفند 1391, 13:39 عصر
فکر کنم کاری که شما لازم دارین رو تابع ip2long خود PHP انجام میده.
اگر ممکنه روش استفاده هم بگین بنده تازه واردم ممنون میشم

aleas2
چهارشنبه 23 اسفند 1391, 17:14 عصر
تابع ip2long


درست عمل نمیکنه برای تست این کرد چک کنین

$ip = '207.21.115.99';
echo $ip, '<hr>', ip2long($ip), '<hr>', sprintf('%u', ip2long($ip))


در نتیجه از کد
sprintf('%u', ip2long($ip));

استفاده کردم ممنون

eshpilen
چهارشنبه 23 اسفند 1391, 20:28 عصر
البته ip2long فقط برای آدرسهای IPv4 است.
تابع جدیدتر بنام inet_pton با هردوی IPv4 و IPv6 قابل استفاده است.