آیا می شه با پی اچ پی ماسک ساب نت آی پی های مختلف رو بدست آورد و از این طریق آدرس شبکه ای که آی پی ها به اون متعلق هستن رو شناسایی کرد؟
Printable View
آیا می شه با پی اچ پی ماسک ساب نت آی پی های مختلف رو بدست آورد و از این طریق آدرس شبکه ای که آی پی ها به اون متعلق هستن رو شناسایی کرد؟
function get_subnet_mask($ip) {
if (is_string($ip)) {
$ip = ip2long($ip);
}
if (($ip & 0x80000000) == 0) {
$mask = 0xFF000000;
} elseif (($ip & 0xC0000000) == (int)0x80000000) {
$mask = 0xFFFF0000;
} elseif (($ip & 0xE0000000) == (int)0xC0000000) {
$mask = 0xFFFFFF00;
} else {
$mask = 0xFFFFFFFF;
}
return long2ip($mask);
}
echo '<p>IP Address: '.$_SERVER['REMOTE_ADDR'].'</p>'.PHP_EOL;
echo '<p>SubNet Mask: '.get_subnet_mask($_SERVER['REMOTE_ADDR']).'</p>'.PHP_EOL;
موفق باشید.
مهندس مگه ماسک ساب نت بصورت جدا از آِ پی ارسال نمی شه؟
اگر بخوایم به این صورت ماسک ساب نت روبدست بیاریم ممکنه اشتابه رخ بده.
Subnet Mask جداگانه ارسال میشه اما باید دقت کنید که هر آدرس IP قابل استفاده در هر Subnet خاصی نیست. بنابراین، ازروی IP میشه Subnet Mask رو محاسبه کرد و درواقع کلاس IP رو بدست آورد. تابع مذکور ابتدا IP رو به یک عدد Long تبدیل میکنه و با عملیات محاسباتی، ماسک رو حساب میکنه و دوباره اون رو که یک عدد Long هست، به IP تبدیل میکنه و نمایش میده. با IP محل دقیق افراد رو نمیشه پیدا کرد اما محل دقیق ISP رو میشه. کافیه IP رو توی سایت IP2Location وارد کنید. موفق باشید.