[PHP/MySQL] IP-log: Bekende hostnames aan naam koppelen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Wouter!
  • Registratie: Maart 2001
  • Laatst online: 21:36
Ik heb een heel eenvoudig gastenboekje waar we met wat vrienden op posten. Nou vermoedt één van hen dat z'n ex-vriendin waarschijnlijk ook nog steeds in het gastenboek leest en vroeg me of ik kan zien wie de site allemaal bezoekt. Ik heb toen even gauw een IP-log in mekaar geprutst die alle bezoekers van de site logt op IP en hostname en opslaat in de database met datum en tijd. Op een andere pagina wordt vervolgens de inhoud van die IP-log-tabel getoond (als je dat wilt zien tenminste).

Nou wil ik aan bekende hostnames/IP's een naam koppelen. Dus als IP xxx.xxx.xxx.xxx (of hostname) in de lijst voorkomt moet daarachter de naam verschijnen in een nieuwe kolom. Ik ben daar net wat mee aan het prutsen geweest, maar op de één of andere manier krijg ik achter àlle IP's en hostnames de naam die ik wilde koppelen in de tabel te zien of zijn ineens alle hostnames hetzelfde ...

Ik ken wel wat PHP, maar wil er niet m'n beroep van maken en het wordt me ook al gauw te ingewikkeld ... maar een beetje prutsen vind ik leuk :) (bovendien is wat ik produceer ook een beetje een zooitje ... een programmeur zou zich doodschrikken >:)). Dit leek me toch niet zo heel moeilijk. Schijnbaar doe ik iets fout.

Dit is de werkende code zoals hij is zonder de koppeling met een naam. Ik wil die koppeling trouwens gewoon hard-coded in de pagina hebben:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?


// Maak verbinding met de MySQL database 
mysql_connect(bladiebla,bladiebla);  

// Selecteer de 'werk'-database, in dit geval "gastenboek" 
mysql_select_db("gastenboek");  


function maakdatumInverted ($s) {
        $split = explode("-",$s);
        return ($split[2] . "-" . $split[1] . "-" . $split[0]);
}



$result = mysql_query(      
            "SELECT datum, tijd, ip, hostname
            FROM ip_log ORDER BY datum, tijd");
            while ( $row = mysql_fetch_array($result) ) {
            $datum = maakdatumInverted($row["datum"]); 
            $tijd = $row["tijd"];
            $ip = $row["ip"];
            $hostname = $row["hostname"];





echo "<TABLE BORDER=0>";
echo "<TR><TD WIDTH=100><FONT FACE='Tahoma' SIZE=2>" . $datum . "</FONT></TD><TD WIDTH=80><FONT FACE='Tahoma' SIZE=2>" . $tijd . " uur</FONT></TD><TD WIDTH=125><FONT FACE='Tahoma' SIZE=2>" . $ip . "</FONT></TD><TD WIDTH=250><FONT FACE='Tahoma' SIZE=2>" . $hostname . "</FONT></TD></TR>";
echo "</TABLE>";

}
?>

[ Voor 24% gewijzigd door Wouter! op 16-02-2005 13:20 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Als je een tabel toevoegd met daarin bekende ipnummers en namen en deze via een join koppeld kun je het allemaal met 1 select query opvragen. Wat is precies je probleem?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 17-09 20:25
Hoe jij denkt lijkt me wat ingewikkeld. Waarom wil je een naam als nieuwe kolom toevoegen aan je tabel als het ip voldoet aan een bepaalde waarde? Kun je niet beter in de tabel een isValid kolom opnemen met een boolean. Zo kun je later bepalen of bepaalde adressen je site mogen bekijken. Of leg anders het probleem wat beter uit.

[ Voor 7% gewijzigd door stp_4 op 16-02-2005 13:25 ]

stp - PSN ID: stp_4


Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Je maakt gewoon een 2e tabel met daarin IP-adressen en namen, als je dan een IP-adres opvraagt uit de eerste tabel (je log-tabel dus) kijk je meteen of die in de bekende adressen tabel staat en als dat zo is vervang je het adres door de naam, simpel dus :)

Acties:
  • 0 Henk 'm!

  • Wouter!
  • Registratie: Maart 2001
  • Laatst online: 21:36
Juist ... daar had ik inderdaad nog helemaal niet bij stil gestaan >:)

Acties:
  • 0 Henk 'm!

  • Wouter!
  • Registratie: Maart 2001
  • Laatst online: 21:36
Okey, ik heb 't ... 't is gelukt :)

Tnx!
Pagina: 1