Devils666 Posted March 21, 2010 Report Share Posted March 21, 2010 Ka noteikt IP adreses valsti, precizak vai ir LV vai nav, man lapa balsošanai nepieciešams šāds kods atradu vienu, taču pa viņu nebija nevienas atsauksmes + viņš vel izveido kaut kādu failu http://php.lv/f/index.php?showtopic=1833 vai tas būtu labākais variants? kā noteikt valsti... Quote Link to comment Share on other sites More sharing options...
2easy Posted March 21, 2010 Report Share Posted March 21, 2010 http://phpweby.com/software/ip2country Quote Link to comment Share on other sites More sharing options...
Devils666 Posted March 21, 2010 Author Report Share Posted March 21, 2010 tur jau vesela sistēma iekša, ar visu datubāzi utt, bet man vaig tikai pēc iespējas īsāku kodu, kurs tikai parada valsti, neko nekur nesalgābajot Quote Link to comment Share on other sites More sharing options...
bubu Posted March 21, 2010 Report Share Posted March 21, 2010 Bez datubāzes/failu glabātuves būs ļoti lēni. Katru reizi nāksies vilkt aktuālākās adreses no nic.lv un meklēt pa tajām. Tavs paša links uz cuuu rakstīto kodu ir labs. Piekešo pie sevis no nic.lv Latvijai izdalītās IP adreses un tajās meklē. Quote Link to comment Share on other sites More sharing options...
Devils666 Posted March 21, 2010 Author Report Share Posted March 21, 2010 skaidrs, un ok, tad lai paliek tas kods :), tikai īsti nezinu kā ar to glabāšanu failos tapec, ka es varetu kaut kāda subfolderi saglabāt to failu? function check_lv($ip) { function update_ranges() { $f = file_get_contents('http://www.nic.lv/local.net'); $f = explode("\n",$f); foreach ($f as $range) { // ja tie nav komentaari if (!(strpos($range,'#') === 0)) { $slash = strpos($range,'/'); if ($slash) { $mask = (int)substr($range,$slash+1); $start = ip2long(substr($range,0,$slash)); $end = $start|((1 << $mask)-1); $ranges[$start] = $end; } } } ksort($ranges,SORT_NUMERIC); // noglabaajam $f = fopen('localnet','w'); fputs($f, serialize($ranges)); fclose($f); return $ranges; } // nav jaatjauninaas? (reizi nedeeljaa) if ((!file_exists('localnet')) or (time() - filemtime('localnet') > 604800)) { $ranges = update_ranges(); } else $ranges = unserialize(file_get_contents('localnet')); $ipl = ip2long($ip); $best = 0; while ((list($s,$e) = each($ranges)) and ($s < $ipl)) { $best = $s; } if ($best) { if (($ipl >= $best) and ($ipl <= $ranges[$best])) return true; } return false; } if (check_lv('213.175.115.12')) { print('no LV'); } else { print('nav no LV'); } nederetu jau tā, ka visas vietas 'localnet' vienkārsi nomainitu uz 'sistema/localnet'? Quote Link to comment Share on other sites More sharing options...
briedis Posted March 21, 2010 Report Share Posted March 21, 2010 kāpēc ne? Nodefinē labāk kaut kur funkcijā vienu mainīgo, kas satur nosaukumu(ieskaitot ceļu) un ievieto vajadzīgajās vietās.. Quote Link to comment Share on other sites More sharing options...
Devils666 Posted March 21, 2010 Author Report Share Posted March 21, 2010 ok, paldies, sanāca Quote Link to comment Share on other sites More sharing options...
2easy Posted March 21, 2010 Report Share Posted March 21, 2010 (edited) interesanti, cik ilgi nic.lv pacietīs, ka kkāds serveris no viņiem nonstopā n-tās reizes dienā velk vienu un to pašu failu :D:D:D sry, pasteidzos un neizlasīju nākamo funkciju. viss pareizi ;) Edited March 21, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.