PDA

View Full Version : چرا گاهی فرمت آی پی ها شناسایی نمی شه



i-php-i
پنج شنبه 18 اردیبهشت 1393, 16:49 عصر
از تابع زیر برای چک کردن فرمت صحیح آی پی کاربر استفاده می کنم اما گاهی مقدار خالی برمیگردونه دلیل این موضوع چیه؟



function ip_format($ip){
if ( !preg_match("(^[0-9\.]+$)",$ip)){
return false;
}
return true;
}

hamedarian2009
پنج شنبه 18 اردیبهشت 1393, 17:38 عصر
چرا از توابع filter_var استفاده نمی کنید :

filter_var($ip, FILTER_VALIDATE_IP)

***BiDaK***
پنج شنبه 18 اردیبهشت 1393, 17:42 عصر
ضمن اینکه regex هم اشتباه است.برای مثال هر عددی میتونه باش و رقم ها مهم نیست و نقطه هر جایی میتونه باشه و ....مثلا این رو آیپی میدونه :

....6666666

qartalonline
پنج شنبه 18 اردیبهشت 1393, 18:17 عصر
من قبلا با این تابع ip رو بدست می آوردم مشکلی نداشتم باهاش.

function getIp(){
foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key)
if (array_key_exists($key, $_SERVER) === true)
foreach (explode(',', $_SERVER[$key]) as $ip)
if (filter_var($ip, FILTER_VALIDATE_IP) !== false)
return $ip;
}

i-php-i
پنج شنبه 18 اردیبهشت 1393, 19:40 عصر
ضمن اینکه regex هم اشتباه است.برای مثال هر عددی میتونه باش و رقم ها مهم نیست و نقطه هر جایی میتونه باشه و ....مثلا این رو آیپی میدونه :

....6666666
کاربرها با آی پی ناشناخته توی سایت می چرخن و پیام درج می کنن و...، اگر آی پی ساختگی بدن نمی تونن بخوبی با سایت تعامل داشته باشن، بخاطر ورژن جدید آی پی ها این مشکل بوجود نمی یاد؟

***BiDaK***
پنج شنبه 18 اردیبهشت 1393, 19:53 عصر
شما بهتره از توابعی که دوستان گفتن استفاده کنید.
پارسال یه کلاسی هم آقای شهرکی فک میکنم تو همین تالار گذاشته بودن.

saeedvir
پنج شنبه 18 اردیبهشت 1393, 22:13 عصر
https://www.sixxs.net/wiki/Detecting_IPv6_In_a_Web_Page

و

https://www.google.com/search?q=GET+IPV6+IN+PHP&oq=GET+IPV6+IN+PHP&aqs=chrome.0.57j0l2.5041j0&sourceid=chrome&ie=UTF-8