Skocz do zawartości

Zbyt maly zakres IP?


Dominik23

Rekomendowane odpowiedzi

Witam.

Daliście mi wczoraj funkcje która rozpoznaje IP kraju z którego user wchodzi na www.

Zrobiłem sobie z niej wczoraj staty która generuje pliki txt odpowiednio do kraju, np. PL.txt, US.txt, DE.txt.

Funkcja świetnie się sprawdza i jestem bardzo zadowolony, jednak generuje się również plik ".txt"

Czym jest to spowodowane, brakiem odpowiedniego IP jakiegoś kraju czy może błąd jest po mojej stronie.

Jeżeli to moja wina to jaki warunek mam wstawić aby taki plik się nie generował lub jak w jaki sposób dodać funkcję unlink() aby ta usuwała na bieżąco nie chciany plik.

function country($ip)
{
$tablica = explode('.', $ip);
$revip = "$tablica[3].$tablica[2].$tablica[1].$tablica[0]";
$ret = gethostbyname($revip.'.zz.countries.nerd.dk');

switch($ret)
{
case '127.0.0.1': return 'LOCALHOST'; break;
case '127.0.0.20': return 'AD'; break;
case '127.0.3.16': return 'AE'; break;
case '127.0.0.4': return 'AF'; break;
case '127.0.0.28': return 'AG'; break;
case '127.0.2.148': return 'AI'; break;
case '127.0.0.8': return 'AL'; break;
case '127.0.0.51': return 'AM'; break;
case '127.0.2.18': return 'AN'; break;
case '127.0.0.24': return 'AO'; break;
case '127.0.0.10': return 'AQ'; break;
case '127.0.0.32': return 'AR'; break;
case '127.0.0.16': return 'AS'; break;
case '127.0.0.40': return 'AT'; break;
case '127.0.0.36': return 'AU'; break;
case '127.0.2.21': return 'AW'; break;
case '127.0.0.31': return 'AZ'; break;
case '127.0.0.70': return 'BA'; break;
case '127.0.0.52': return 'BB'; break;
case '127.0.0.50': return 'BD'; break;
case '127.0.0.56': return 'BE'; break;
case '127.0.3.86': return 'BF'; break;
case '127.0.0.100': return 'BG'; break;
case '127.0.0.48': return 'BH'; break;
case '127.0.0.108': return 'BI'; break;
case '127.0.0.204': return 'BJ'; break;
case '127.0.0.60': return 'BM'; break;
case '127.0.0.96': return 'BN'; break;
case '127.0.0.68': return 'BO'; break;
case '127.0.0.76': return 'BR'; break;
case '127.0.0.44': return 'BS'; break;
case '127.0.0.64': return 'BT'; break;
case '127.0.0.74': return 'BV'; break;
case '127.0.0.72': return 'BW'; break;
case '127.0.0.112': return 'BY'; break;
case '127.0.0.84': return 'BZ'; break;
case '127.0.0.124': return 'CA'; break;
case '127.0.0.166': return 'CC'; break;
case '127.0.0.140': return 'CF'; break;
case '127.0.0.178': return 'CG'; break;
case '127.0.2.244': return 'CH'; break;
case '127.0.1.128': return 'CI'; break;
case '127.0.0.184': return 'CK'; break;
case '127.0.0.152': return 'CL'; break;
case '127.0.0.120': return 'CM'; break;
case '127.0.0.156': return 'CN'; break;
case '127.0.0.170': return 'CO'; break;
case '127.0.0.188': return 'CR'; break;
case '127.0.0.192': return 'CU'; break;
case '127.0.0.132': return 'CV'; break;
case '127.0.0.162': return 'CX'; break;
case '127.0.0.196': return 'CY'; break;
case '127.0.0.203': return 'CZ'; break;
case '127.0.1.20': return 'DE'; break;
case '127.0.1.6': return 'DJ'; break;
case '127.0.0.208': return 'DK'; break;
case '127.0.0.212': return 'DM'; break;
case '127.0.0.214': return 'DO'; break;
case '127.0.0.12': return 'DZ'; break;
case '127.0.0.218': return 'EC'; break;
case '127.0.0.233': return 'EE'; break;
case '127.0.3.50': return 'EG'; break;
case '127.0.2.220': return 'EH'; break;
case '127.0.0.232': return 'ER'; break;
case '127.0.2.212': return 'ES'; break;
case '127.0.0.231': return 'ET'; break;
case '127.0.0.246': return 'FI'; break;
case '127.0.0.242': return 'FJ'; break;
case '127.0.0.238': return 'FK'; break;
case '127.0.2.71': return 'FM'; break;
case '127.0.0.234': return 'FO'; break;
case '127.0.0.250': return 'FR'; break;
case '127.0.0.249': return 'FX'; break;
case '127.0.1.10': return 'GA'; break;
case '127.0.3.58': return 'GB'; break;
case '127.0.1.52': return 'GD'; break;
case '127.0.1.12': return 'GE'; break;
case '127.0.0.254': return 'GF'; break;
case '127.0.1.32': return 'GH'; break;
case '127.0.1.36': return 'GI'; break;
case '127.0.1.48': return 'GL'; break;
case '127.0.1.14': return 'GM'; break;
case '127.0.1.68': return 'GN'; break;
case '127.0.1.56': return 'GP'; break;
case '127.0.0.226': return 'GQ'; break;
case '127.0.1.44': return 'GR'; break;
case '127.0.0.239': return 'GS'; break;
case '127.0.1.64': return 'GT'; break;
case '127.0.1.60': return 'GU'; break;
case '127.0.2.112': return 'GW'; break;
case '127.0.1.72': return 'GY'; break;
case '127.0.1.88': return 'HK'; break;
case '127.0.1.78': return 'HM'; break;
case '127.0.1.84': return 'HN'; break;
case '127.0.0.191': return 'HR'; break;
case '127.0.1.76': return 'HT'; break;
case '127.0.1.92': return 'HU'; break;
case '127.0.1.104': return 'ID'; break;
case '127.0.1.116': return 'IE'; break;
case '127.0.1.120': return 'IL'; break;
case '127.0.1.100': return 'IN'; break;
case '127.0.0.86': return 'IO'; break;
case '127.0.1.112': return 'IQ'; break;
case '127.0.1.108': return 'IR'; break;
case '127.0.1.96': return 'IS'; break;
case '127.0.1.124': return 'IT'; break;
case '127.0.1.132': return 'JM'; break;
case '127.0.1.144': return 'JO'; break;
case '127.0.1.136': return 'JP'; break;
case '127.0.1.148': return 'KE'; break;
case '127.0.1.161': return 'KG'; break;
case '127.0.0.116': return 'KH'; break;
case '127.0.1.40': return 'KI'; break;
case '127.0.0.174': return 'KM'; break;
case '127.0.2.147': return 'KN'; break;
case '127.0.1.152': return 'KP'; break;
case '127.0.1.154': return 'KR'; break;
case '127.0.1.158': return 'KW'; break;
case '127.0.0.136': return 'KY'; break;
case '127.0.1.142': return 'KZ'; break;
case '127.0.1.162': return 'LA'; break;
case '127.0.1.166': return 'LB'; break;
case '127.0.2.150': return 'LC'; break;
case '127.0.1.182': return 'LI'; break;
case '127.0.0.144': return 'LK'; break;
case '127.0.1.174': return 'LR'; break;
case '127.0.1.170': return 'LS'; break;
case '127.0.1.184': return 'LT'; break;
case '127.0.1.186': return 'LU'; break;
case '127.0.1.172': return 'LV'; break;
case '127.0.1.178': return 'LY'; break;
case '127.0.1.248': return 'MA'; break;
case '127.0.1.236': return 'MC'; break;
case '127.0.1.242': return 'MD'; break;
case '127.0.1.194': return 'MG'; break;
case '127.0.2.72': return 'MH'; break;
case '127.0.3.39': return 'MK'; break;
case '127.0.1.210': return 'ML'; break;
case '127.0.0.104': return 'MM'; break;
case '127.0.1.240': return 'MN'; break;
case '127.0.1.190': return 'MO'; break;
case '127.0.2.68': return 'MP'; break;
case '127.0.1.218': return 'MQ'; break;
case '127.0.1.222': return 'MR'; break;
case '127.0.1.244': return 'MS'; break;
case '127.0.1.214': return 'MT'; break;
case '127.0.1.224': return 'MU'; break;
case '127.0.1.206': return 'MV'; break;
case '127.0.1.198': return 'MW'; break;
case '127.0.1.228': return 'MX'; break;
case '127.0.1.202': return 'MY'; break;
case '127.0.1.252': return 'MZ'; break;
case '127.0.2.4': return 'NA'; break;
case '127.0.2.28': return 'NC'; break;
case '127.0.2.50': return 'NE'; break;
case '127.0.2.62': return 'NF'; break;
case '127.0.2.54': return 'NG'; break;
case '127.0.2.46': return 'NI'; break;
case '127.0.2.16': return 'NL'; break;
case '127.0.2.66': return 'NO'; break;
case '127.0.2.12': return 'NP'; break;
case '127.0.2.8': return 'NR'; break;
case '127.0.2.58': return 'NU'; break;
case '127.0.2.42': return 'NZ'; break;
case '127.0.2.0': return 'OM'; break;
case '127.0.2.79': return 'PA'; break;
case '127.0.2.92': return 'PE'; break;
case '127.0.1.2': return 'PF'; break;
case '127.0.2.86': return 'PG'; break;
case '127.0.2.96': return 'PH'; break;
case '127.0.2.74': return 'PK'; break;
case '127.0.2.104': return 'PL'; break;
case '127.0.2.154': return 'PM'; break;
case '127.0.2.100': return 'PN'; break;
case '127.0.2.118': return 'PR'; break;
case '127.0.2.108': return 'PT'; break;
case '127.0.2.73': return 'PW'; break;
case '127.0.2.88': return 'PY'; break;
case '127.0.2.122': return 'QA'; break;
case '127.0.2.126': return 'RE'; break;
case '127.0.2.130': return 'RO'; break;
case '127.0.2.131': return 'RU'; break;
case '127.0.2.134': return 'RW'; break;
case '127.0.2.170': return 'SA'; break;
case '127.0.0.90': return 'SB'; break;
case '127.0.2.178': return 'SC'; break;
case '127.0.2.224': return 'SD'; break;
case '127.0.2.240': return 'SE'; break;
case '127.0.2.190': return 'SG'; break;
case '127.0.2.142': return 'SH'; break;
case '127.0.2.193': return 'SI'; break;
case '127.0.2.232': return 'SJ'; break;
case '127.0.2.191': return 'SK'; break;
case '127.0.2.182': return 'SL'; break;
case '127.0.2.162': return 'SM'; break;
case '127.0.2.174': return 'SN'; break;
case '127.0.2.194': return 'SO'; break;
case '127.0.2.228': return 'SR'; break;
case '127.0.2.166': return 'ST'; break;
case '127.0.0.222': return 'SV'; break;
case '127.0.2.248': return 'SY'; break;
case '127.0.2.236': return 'SZ'; break;
case '127.0.3.28': return 'TC'; break;
case '127.0.0.148': return 'TD'; break;
case '127.0.1.4': return 'TF'; break;
case '127.0.3.0': return 'TG'; break;
case '127.0.2.252': return 'TH'; break;
case '127.0.2.250': return 'TJ'; break;
case '127.0.3.4': return 'TK'; break;
case '127.0.3.27': return 'TM'; break;
case '127.0.3.20': return 'TN'; break;
case '127.0.3.8': return 'TO'; break;
case '127.0.2.114': return 'TP'; break;
case '127.0.3.24': return 'TR'; break;
case '127.0.3.12': return 'TT'; break;
case '127.0.3.30': return 'TV'; break;
case '127.0.0.158': return 'TW'; break;
case '127.0.3.66': return 'TZ'; break;
case '127.0.3.36': return 'UA'; break;
case '127.0.3.32': return 'UG'; break;
case '127.0.3.58': return 'UK'; break;
case '127.0.2.69': return 'UM'; break;
case '127.0.3.72': return 'US'; break;
case '127.0.3.90': return 'UY'; break;
case '127.0.3.92': return 'UZ'; break;
case '127.0.1.80': return 'VA'; break;
case '127.0.2.158': return 'VC'; break;
case '127.0.3.94': return 'VE'; break;
case '127.0.0.92': return 'VG'; break;
case '127.0.3.82': return 'VI'; break;
case '127.0.2.192': return 'VN'; break;
case '127.0.2.36': return 'VU'; break;
case '127.0.3.108': return 'WF'; break;
case '127.0.3.114': return 'WS'; break;
case '127.0.3.119': return 'YE'; break;
case '127.0.0.175': return 'YT'; break;
case '127.0.3.123': return 'YU'; break;
case '127.0.2.198': return 'ZA'; break;
case '127.0.3.126': return 'ZM'; break;
case '127.0.0.180': return 'ZR'; break;
case '127.0.2.204': return 'ZW'; break;
default: return ''; break;
}
}


  if (!(file_exists('visits/')))//tworzy katalog na pliki ze statystykami
mkdir ('visits/', 0700);
  $file=country($_SERVER['REMOTE_ADDR']);//pobieram  nazwe strony (pliku php) - plik z liczba odwiedzin nazywa się tak samo

  if (!(file_exists('visits/'.$file.'.txt')))//tworzenie plików na statytyki
 {
 $file = fopen ('visits/'.$file.'.txt', 'w+');
 fputs ($file,'1');
 fclose ($file);
 }
  $file = fopen ('visits/'.$file.'.txt', 'r+'); 
  if ($file)//odczytywanie i uaktualnianie statystyk
 {
 flock ($file, 2);
 $visits = fgets($file, 20);
 $visits++;
 fseek ($file, 0);
 fputs ($file, $visits);
 flock ($file,3);
 fclose ($file);
 }

// generowanie statów

$opdir = opendir("visits/");
while($plik = readdir($opdir)){
$fp = fopen("https://domena.com/visits/"."$plik", "r");

if(substr($plik, -4)=='.txt') { 
$name = substr($plik, 0, strlen($plik)-4); 
$wynik = strtolower($name);
echo "Wejścia z <img src=\"flagi/"."$wynik".".png\"> : ";
echo fgets($fp, 4096);
echo "<br />";
fclose($fp);
}
}
closedir($opdir);

Witryna Biznesu - najlepsza promocja biznesu w sieci.

Odnośnik do komentarza
Udostępnij na innych stronach

Z tego co mi się wydaje- PHP jak widzę jest dość podobne do C, więc być może to będzie to- masz w switchu default ustawione na ''- co IMO tworzy plik .txt gdy nie może określić państwa. Spróbuj to zamienić na 'nieznany'- może pomoże :puknijsie:

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności