Avatar billede pluth Nybegynder
17. juni 2001 - 21:49 Der er 12 kommentarer og
1 løsning

IP adresse i MySQL

Jeg skal gemme en IP adresse i en mysql tabel, men når jeg gemmer den, bliver format kun på 4-8 tal... Er der nogen der ved hvilken \"type\" man skal gemme IP adresse i, i en Mysql tabel??

Pluth
Avatar billede htx98i17 Professor
17. juni 2001 - 21:51 #1
du kan gemme den som TEXT....
Avatar billede nau.dk Nybegynder
17. juni 2001 - 21:51 #2
Jeg plejer at bruge varchar (15).
Avatar billede htx98i17 Professor
17. juni 2001 - 21:51 #3
og det var et svar
Avatar billede chris2k Nybegynder
17. juni 2001 - 21:51 #4
Du skal gemme den i et int(11) felt, på denne måde:

INSERT INTO tbl (ip) valeus(ATON_INET(\'127.0.0.1\'));
Avatar billede pluth Nybegynder
17. juni 2001 - 22:08 #5
Der er ingen af dem der bliver til en Ip adresse... Er det mit script???

<?
mysql_connect($mysql_server_navn,$mysql_server_bruger,$mysql_server_kode);
mysql_select_db($mysql_database_navn);

$temp=uniqid(rand());
if ($knap) {
$stoerrelse = sizeof($ting);
for ($i = 0; $i < $stoerrelse; $i++) {
mysql_query(\"insert into kobvarer (produkt, ip) values (\'$ting[$i]\',\'$temp\')\");
}
setCookie(\"produkt\", \"$temp\");

}
?>

Pluth
Avatar billede htx98i17 Professor
17. juni 2001 - 22:10 #6
du skal jo finde din ip...

$ip = $REMOTE_ADDR;
Avatar billede pluth Nybegynder
17. juni 2001 - 22:11 #7
Det var selvfølgelig denne i skulle have haft!!

<?
mysql_connect($mysql_server_navn,$mysql_server_bruger,$mysql_server_kode);
mysql_select_db($mysql_database_navn);

$ip = $REMOTE_ADDR;
$temp=uniqid(rand());
if ($knap) {
$stoerrelse = sizeof($ting);
for ($i = 0; $i < $stoerrelse; $i++) {
mysql_query(\"insert into kobvarer (produkt, ip) values (\'$ting[$i]\',\'$ip\')\");
}
setCookie(\"produkt\", \"$temp\");

}
?>
Avatar billede nau.dk Nybegynder
17. juni 2001 - 22:13 #8
Hvad sker der?

Får du en fejlmeddelelse?

Hvad giver SELECT ip FROM kobvarer?
Avatar billede pluth Nybegynder
17. juni 2001 - 22:13 #9
Så fik jeg den til at virke med text, og derfor får htx98i17 pointne...

Tak  Pluth
Avatar billede morw Nybegynder
17. juni 2001 - 22:14 #10
IP-adresse til int:

<?php
function strtoint($str) {
    $ip = 0;
    $tetr = explode(\".\", $str);
    for ($i = 0; $i < 4; $i++) {
        $ip = $ip << 8;
        $ip += $tetr[$i]; 
    };
    return $ip;
}

?>

Int til IP-adresse:

<?php
function inttostr($ip) {
    $str = \"\";
    for ($i = 0; $i < 4; $i++) {
        if ($i) $str = \".\" . $str;
        $str = ($ip & 0x000000FF) . $str;
        $ip = $ip >> 8;
    };
    return $str;
};

?>
Avatar billede chris2k Nybegynder
17. juni 2001 - 23:30 #11
Jeg må altså holde fast i at ATON_INET er den rigtige måde. Prøv at søge i mysql manualen, så står det også der.
Avatar billede morw Nybegynder
18. juni 2001 - 12:28 #12
chris2k > Hvor ser du ATON_INET? Jeg kan ikke finde den funktion.
Avatar billede morw Nybegynder
18. juni 2001 - 12:29 #13
Du har vist byttet lidt om. Her er de:


INET_NTOA(expr)
Returns the network address (4 or 8 byte) for the numeric expression:
mysql> select INET_NTOA(3520061480);
      ->  \"209.207.224.40\"

INET_ATON(expr)
mysql> select INET_ATON(\"209.207.224.40\");
      ->  3520061480


Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester