Autor Zpráva
Fastman
Profil
Dobrý den úplně jednoduchá otázka, jde udělat když se podívá na můj web aby to někde v adresáři nebo v .txt souboru zapisovalo ip adresu všech návštěvníků co tam byli samozřejmě aby tam nebyla opakovačka stejných ip adres ( jednalo by se potom v adresáři o spam ) předem děkuji za odpověď.
Krakatoa
Profil
www.google.com/search?q=php+zjištění+ip

Druhej odkaz ve vyhledávání vede na diskusi na jakpsatweb.cz
Asi tu dostaneš BAN na IP.
Keeehi
Profil
Fastman:
Ano jde to. Je pravda, že jsi mohl trochu hledat, ale napovím, že IP je v $_SERVER["REMOTE_ADDR"]

Krakatoa:
Asi tu dostaneš BAN na IP.
A na to jsi přišel jak?
Fastman
Profil
Moc vám děkuji a omlouvám se nechtěl jsem způsobit problémy ale nevěděl jsem jak mám hledat :( .
Joker
Profil
Krakatoa:
Asi tu dostaneš BAN na IP.
Klid, ano?
Ban udělují moderátoři, kolektivně (tzn. jen pokud žádný není proti banu) a obvykle na základě opakovaných vážných porušení pravidel a po vyčerpání jiných možností.

Strašit banem někoho, kdo jen nehledal/nenašel svůj dotaz (což ani není porušení závazných pravidel), mi přijde nevhodné.

Fastman:
Jelikož dotaz je v kategorii HTML, dodám, že to ukládání IP se dělá pomocí nějaké technologie na straně serveru (to co zmiňuje Keeehi je PHP), v samotném HTML to nejde.
Fastman
Profil
Joker:
Ano chápu moc se omlouvám příště se to nestane pokud to půjde můžete to přesunout do PHP jinak děkuji za všechny vaše odpovědi.

Moderátor Joker: Přesunuto tedy do PHP
Fastman
Profil
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo "Vase IP adresa je: $ip";
?>

Nevím jestli to je ono ale potřebuji vědět prosím jak udělám když někdo navštíví web aby jeho ip se někam zapsala nejlépe do .txt abych ho mohl popřípadě zabanovat! /ještě nejlepší by bylo že než tam příjde tak aby vyplnil jenom jméno a to by se zapsalo i z jeho ip někam do .txt . Děkuji vám za všechny odpovědi.
Keeehi
Profil
Fastman:
Práce se soubory
Alphard
Profil
Ještě doplním, že na tohle by se hodila funkce file_put_contents(), kterou v [#8] nevidím. Všimněte si flagu FILE_APPEND.
Fastman
Profil
Prosím jak jsem již psal já potřebuji kód který zjistí ip návštěvníka a odešle někam do .txt v php moc neumím.
Keeehi
Profil
Fastman:
Musíte projevit trochu vůle se něco naučit, na něco přijít. Pokoušejte se, když se vám to po několika pokusech nepovede, napište sem a přidejte svůj dosavadní výtvor. Můžete popsat, co jste zkoušel, jak to dopadlo (co jste očekával a co se ve skutečnosti stalo) a jistě vám potom někdo rád poradí.

Na zjištění IP jste už přišel, teď to stačí zapsat do souboru. Doporučil bych tu funkci file_put_contents(). Ten odkaz v [#9] vede na stránku, kde je vysvětleno její použití.
Fastman
Profil
Tak nevím furt to nejde vím že to
$file = 'adresa.txt';
nestačí ale furt mi nejde do hlavy jaký je příkaz na přesměrování toho údaje do adresa.txt ještě se podívám...
<?php
	$file = 'adresa.txt';
	$ip = $_SERVER['REMOTE_ADDR'];
echo "Vase IP adresa je: $ip";
?>
drvaca
Profil
Takto vypadá kód co jsem si nedávno doslova zprasil pro jeden svůj již nefunkční web. Snad si z toho dokážeš vytáhnout jen tu IP.
<?php
$hlavniradek = FOpen("soubor.htm", "a");
$datum = StrFTime("%d.%m.%Y %H:%M", Time());
$proma = "" . gethostbyaddr($_SERVER['REMOTE_ADDR']) . "";

$ip = getenv("REMOTE_ADDR") ; 
        $data = strtolower($_SERVER["HTTP_USER_AGENT"]);


        $prohlizece = Array("MSIE", "Netscape", "Firefox", "Maxthon", "Opera", "Mozilla", "Neznámý");

        if(eregi("gecko", $data)) {
                if(eregi("netscape", $data)) {
                        $prohlizec = "1";
                } elseif(eregi("firefox", $data)) {
                        $prohlizec = "2";
                } else {
                        $prohlizec = "5";
                }
        } elseif(eregi("maxthon", $data)) {
                $prohlizec = "3";
        } elseif(eregi("pera", $data)) {
                $prohlizec = "4";
        } elseif(eregi("msie", $data)) {
                $prohlizec = "0";
        } else {
                $prohlizec = "6";
        }


        $oska = Array("Win XP", "Win 98", "Win 2000", "Windows", "Linux", "Mac OS", "Windows 7", "Neznámý");

        if((eregi("windows 98", $data)) || (eregi("windows 4.10", $data)) || (eregi("win98", $data))) {
                $os = "1";
        } elseif((eregi("windows 2000", $data)) || (eregi("windows NT 5.0", $data))) {
                $os = "2";
        } elseif((eregi("windows xp", $data)) || (eregi("windows NT 5.1", $data))) {
                $os = "0";
        } elseif(eregi("windows", $data)) {
                $os = "3";
        } elseif(eregi("linux", $data)) {
                $os = "4";
        } elseif(eregi("mac", $data)) {
                $os = "5";
        } elseif(eregi("Windows 7", $data)) {
                $os = "6";
        } else {
                $os = "7";
        }

$hlavniradek= FWrite($hlavniradek,"\n <br>Datum a cas: $datum <br>IP: $ip <br>Host: $proma <br>Browser: $prohlizece[$prohlizec] <br>System: $oska[$os] <br>Jinak: $_SERVER[HTTP_USER_AGENT] <hr>");
?>

btw na soubor.htm je důležité mít nastavena práva pro přepisování souboru, jinak ti to vypíše chybu.
Fastman
Profil
Hledám a hledám a nic sem nenašel....nebo sem to nepochopil :( tady ten kód mi moc nepomohl ale i tak dík.
Fastman
Profil
v tom kódu jsem našel tohle 6;7 řádku:
$ip = getenv("REMOTE_ADDR") ; 
        $data = strtolower($_SERVER["HTTP_USER_AGENT"]);

a na 51 řádku bylo
<br>IP: $ip 

takže nevím...
Joker
Profil
Fastman:
Vždyť na tom nic složitého není.
Uložení IP do proměnné už se tu snad vyřešilo, no a pak stačí jen tu proměnnou zapsat do souboru pomocí fopen+fwrite, nebo file_put_contents, jak se zmiňuje v [#8] a [#9].

Akorát to pak vytvoří prostě seznam IP adres. V tom prvním příspěvku se ještě píše něco s více stejnými IP, ale nevím, jak to přesně je myšlené.
donald21
Profil
Použil jsem výše uvedený kód od drvaca, ale ještě bych potřeboval, aby to nezapočítávalo mojí IP. Jsem začátečník, a proto si nevím rady. Prosím poraďte mi, děkuji předem. děkuji předem
Tori
Profil
donald21:
Tak celý ten kód od drvaca dejte do podmínky
if ($_SERVER['REMOTE_ADDR'] != 'moje_ip') 
, přičemž vlastní IP zjistíte na x různých webech, namátkou třeba ip-lookup.net/.
Pokud nechcete logovat více než jednu IP, uložte všechny vynechávané IP do pole a koukněte se na funkci in_array.
donald21
Profil
To mě nenapadlo, ale co teď?

vysledek v souboru je: Datum a cas: 02.04.2011 00:27 IP:

ten php skript vypadá takto:
<?php
$hlavniradek = FOpen("soubor.htm", "a");
$datum = StrFTime("%d.%m.%Y %H:%M", Time());

if ($_SERVER['REMOTE_ADDR'] != '127.0.0.1')
$ip = getenv("REMOTE_ADDR");



$hlavniradek= FWrite($hlavniradek,"Datum a cas: $datum <br>IP: $ip <br><hr>");

?>


Ip adresu to sice nevypsalo, ale ten zbytek ano, jak to pozměnit, aby se nezapisoval ani datum, IP: ani Datum a cas: ?
Krakatoa
Profil
donald21:
Ten if dej až na zápis do souboru (řádek 10).
donald21
Profil
Díky moc, už to funguje přesně tak jak chci

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0