Súgó - Keresés - Tagok - Naptár
Teljes változat: IP lekérés
PC WORLD Segélyvonal > WEBSAROK > Webszerkesztés, programozás > PHP
Pozoki
Kaptam egy egy PHP-s kódot, de nem jó valami miatt, nem tudjátok mi miatt?

KÓD
<?php

//ez lekerdezi az ip cimet az ip valtozoba
$ip = getenv("REMOTE_ADDR");
//beallitod a fajl nevet
$fajlneve = "ipcimek.txt";
// Megnyitod a fajlt irasra (ha letezik a fajl akkor ujrairja)
if(!$fd = fopen($fileneve, "w"))
{
 echo("Hiba a megnyitas soran.");
 exit;
}
//kiirod az ip cimet a fajlba, ha sikerul
if(!fwrite($fd, $ip))
{
 echo("Hiba tortent iras soran!");
 exit;
}

//vegul bezarod a fajlt

fclose($fd);
?>
arpsoft
De mi a hibajelenség?
google
A txt-fájl jó helyen van? Egy mappában a php-vel?
ocsi
Szűkítsd a hiba lehetséges helyét:
Egy egyszerű print el irasd ki az IP-t, hogy lássuk, az megvan-e!
Pozoki
Mikor ki próbáltam akkor azt írta hogy "Hiba a megnyitás során." annoyed.gif
arpsoft
Akkor szolgáltatód nem engedi az ilyen szintű fájlműveleteket!
Pozoki
Szerintem engedi, nektek jó ?
ocsi
Esetleg Atributum módosítás? Nekem egyszer volt ebből galibám, talán a fw-nél... de miután beállítottam a szövegfile-nak, hogy bárhonnan lehessen írni és olvasni.. azután ment!
Mezofi
Szerintem is, a Total CMD >> Fájl megnyitás >> Attribútumok módosítása. Itt át tudod állítani a txt fájl-t, hogy írhassad! Különben hibát fog jelezni.
Pozoki
Hiba! Semmit sem ért! sad.gif
ocsi
Hát így mi sem értünk semmit... És így segíteni sem tudunk... exclamat.gif
Mezofi
Kedves Pozoki!
Ez a probléma amivel te találkoztál tipikus esete annak, ha máshonnan vett scriptet szeretnénk úgy átültetni a saját lapunkra, hogy abszolut nincs fogalmunk a változók használatáról!
Ha mégegyszer átolvasod a scriptedet rájössz, hogy egy nem létező fájlt próbálsz megnyítani írásra. Ugyanis az ipcimek.txt -t nem ugyanabban a változóban tárolod mint amit megadsz írásra.
Ha ezt esetleg átírod, akkor nálad is fog működni, én kipróbáltam nálam működött!

KÓD
$fajlneve = "ipcimek.txt";// Megnyitod a fajlt irasra (ha letezik a fajl akkor ujrairja)
if(!$fd = fopen($fileneve, "w"))

Magyarul a $fajlneve nem ugyanaz mint a $fileneve. Erről a gép nem tehet!
annoyed.gif
arpsoft
Vazze, de lámák vagyunk... blush.gif
ocsi
Jah.. nemártott volna ezt elolvasni..biggrin.gif Nekem nem volt hozzá hangulatom... blush.gif
Pozoki
Tényleg ez volt a bibi, még régebben írtam egy vandégkönyvet és ezt meg nem vettem
észre !!! blush.gif

Még egy gondom van, nem a felhasználó ip-jét hanem a Serverét menti ! roll.gif
Mezofi
@Pozoki
Azért azt szeretném megkérdezni, hogy milyen megfontolásból szeretnéd tárolni az éppen aktuális IP címeket?

Az rendben van, hogy a saját gépednek helyi hálózaton belül adsz egy IP címet, de azt tudod-e, hogy az Internetre csatlakozáskor a szolgáltatódtól kapsz egy véletlenszerű IP címet, amely a megszakításkor semmivé lesz. Ezenkivűl ha sok ideig vagy a hálón a szolgáltató akkor is bizonyos idő elteltével lecseréli az IP címedet, mindezeket azért mert nem akar fix IP címet biztosítani számodra.
A fix IP címet vásárolni kell általában server üzemeltetés céljából!

Így tehát az IP cím elraktározása pusztán arra alkalmas, hogy véletlen számokat raktározzál el, ha ezt szeretnéd, akkor ajánlom találj ki véletlen számokat és írd be a txt fájlba, persze ez ídőigényes de gyorsabb.

Ha viszont a látogató azonosítása a cél akkor használj sütiket, persze annak hogy a látogató ezek használatát engedélyezi kb 55%, de még mindig jobban lehet azonosítani evvel a módszerrel mint az IP címmel ahol kb 0%. smile.gif
Pozoki
De ha még értelme sincs akkor is, meglehet csinálni ?
Mezofi
Mindent meg lehet csinálni!
A te scripted a felhasználó IP címét írja ki, nem tudom honnan vetted hogy a server címét mutatja.
Itt egy script ezzel megbizonyosodhatsz róla:
KÓD
<?php
print("Ez a te IP címed:<br>".$_SERVER['REMOTE_ADDR'] . "\n\n");
print("<br>Ez a SERVER IP cím:<br>".$_SERVER['SERVER_ADDR'] . "\n\n");
echo phpinfo();?>

"Apache Environment" itt keresd. blush.gif
Pozoki
Most nem igazán értem, ha az én IP-m van kiírva, akkor miért nem stimmel a Windows-ban lévővel ??? question.gif
Mezofi
Légyszíves újra olvasd el az utolsó elötti hozzászolásomat. Kb. ott ahol kifejtettem, hogy csatlakozáskor a szolgáltatódtól kapott IP címmel kerülsz fel a netre, és nem a sajátoddal! blush.gif
Pozoki
Sajátot nem lehet ? annoyed.gif
ocsi
Ez is benne van abban a hozzászólásban... De lehet.. és úgy hívák, hogy FIX IP és fizetni kell érte!!!
jamborka
IDÉZET(Pozoki @ 2005. augusztus 25., 0:40 - csütörtök)
Kaptam egy egy PHP-s kódot, de nem jó valami miatt, nem tudjátok mi miatt?

KÓD
<?php

//ez lekerdezi az ip cimet az ip valtozoba
$ip = getenv("REMOTE_ADDR");
//beallitod a fajl nevet
$fajlneve = "ipcimek.txt";
// Megnyitod a fajlt irasra (ha letezik a fajl akkor ujrairja)
if(!$fd = fopen($fileneve, "w"))
{
 echo("Hiba a megnyitas soran.");
 exit;
}
//kiirod az ip cimet a fajlba, ha sikerul
if(!fwrite($fd, $ip))
{
 echo("Hiba tortent iras soran!");
 exit;
}

//vegul bezarod a fajlt

fclose($fd);
?>

KÓD
$ip = getenv("HTTP_X_FORWARDED_FOR ");




KÓD
ehelyett -->> $ip = getenv("REMOTE_ADDR");
mad.gif
shraatz
Próbáld ki ezt:

KÓD

<?php

$file = "ip.txt";
$fh = fopen($file,"a+");
fwrite($fh,date("m.d.y G:i:s T Y")."|".$_SERVER["REMOTE_ADDR"]."\r\n");
fclose($fh);

?>


Ha így sem működik, akkor azt a fájlt amibe ezt berakod módosítsd CHMOD 777-re, hozz létre a fájllal azonos könyvtárban egy ip.txt -t és azt is 777 -re. Így 10000% hogy működik. ani_wink.gif
Silent Psycho
@ Pozoki

Melyik szolgáltatónál van a tárhelyed?

UW-n találkoztam ezzel a problémával, hogy nem a jó IP címet írja ki hanem vm mást.
Az ATW-n működik a felhasználó IP-jének lekérése: http://www.psyweb.atw.hu/ bulb.gif
coolmen
Sziasztok !
Nem tudom jó helyre írok-e.Lenne egy problémám.
T-online-os vagyok.Dinamikus ip-címem van,de a Hálózati beáll, tulajdonnságok .TCP/Ip protokol menünél teljesen más Ip-cím szerepel,mint a set-top-box beállítási menüjében. Illetve itt változik ,de a gépemnél mintha állandó lenne.
Próbáltam a gépemen az ip-címet egyel nagyobbra állítani, akkor nem volt kapcsolat.
Szeretném kérdezni hogy mi küldi az ip-címet,a gép vagy a hálózati eszköz ?
Letöltéseknél ( rapidshare ) ez problémát jelent .
Válaszotokat köszönöm !!
SkyBird
A külső netes IP címed a szolgáltatótól kapod, írod is, hogy dinamikus.
Nincs más dolgod a Rapidshare-hez, mint kikapcsolod majd vissza a HGW-t, vagy kihúzod és visszadugod a tápját rövid időre.
Ha visszakapcsolod, akkor már más külső IP címed lesz, és tudsz megint letölteni.
De automatizálhatod a Rapidshare letöltővel is.
Ez a tartalom egy lebutítottváltozata. A teljes változat képekkel kiegészült megtekintéséhez kérünk, kattints ide.