Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zasto uvek daje 127.0.0.1 ?

[es] :: C/C++ programiranje :: Zasto uvek daje 127.0.0.1 ?

Strane: 1 2

[ Pregleda: 4703 | Odgovora: 28 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.dial.InfoSky.Net

Sajt: www.mycity.rs


+1 Profil

icon Re: Zasto uvek daje 127.0.0.1 ?10.05.2003. u 13:51 - pre 255 meseci
Evo (ponovo) sta daje Stevensov primer:
Code:

peca@peca:~/unpv12e/names$ ./prmyaddrs1
        address: 127.0.0.1

na internetu sam!

Evo /etc/hosts
Code:

127.0.0.1       localhost
127.0.0.1               peca.peca.net peca


p.s. kako to da me niko nije upozorio da inet_ntoa i gethostbyname nisu thread-safe na UNIX-ima? (na windowsu su thread-safe!)
nema veze, nadjoh thread-safe zamene...
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Zasto uvek daje 127.0.0.1 ?10.05.2003. u 15:12 - pre 255 meseci
Ovo je resenje koje meni radi:
Code:

#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netdb.h>
#include <string.h>
/**
 * u /etc/hosts pored 127.0.0.1 ne sme da bude NISTA
 * drugo OSIM "localhost.localdomain" i/ili "localhost"
 * .........
 * The source below is written by Dejan Lekic <dejan§nu6.org>
 * and licensed under GPL license...
 */
int main(char argc, char** argv)
{
    char ac[80];
    int i = 0;
    struct hostent* phe;
    struct in_addr addr;
        
    if (gethostname(ac, sizeof(ac)) != 0) 
    {
        printf("Yoy, ne mogu da uzmem ime lokal-host-a bwe!\n");
        return 1;
    }
    else
        printf("Ime hosta je: %s\n", ac);
    /* 'aj sad da odradimo posao... */
    phe = gethostbyname(ac);
    if (phe == NULL) 
    {
        printf("Uh! Host lukap pandrknuo.\n");
        return 1;
    }
    /* ofo zapravo wadi poswitj */
    for (i = 0; phe->h_addr_list[i] != NULL; ++i) 
    {
        bzero(&addr, sizeof(struct in_addr));
        memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr));
        printf("Adresa %d : %s\n", i, inet_ntoa(addr));
    }
    
    printf("Peco, ako ti ovo ne radi, onda baci kompjuter kroz prozor.\n");
    return 0;
}


Da zadovoljim Pecu, koji ima frku sa manje prostim stvarima a nama naglasava da postoje i *_r() funkcije koje su reentrantne, ovaj kod bi trebalo malo modifikovati kada treba da funkcionise asinhrono. Tada treba, prema recima gospodina Richardu W. Stevensa, koristiti gethostbyname_r() . Ali, pazljivim programiranjem i gethostname() se moze iskoristiti...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Prikačeni fajlovi
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.dial.InfoSky.Net

Sajt: www.mycity.rs


+1 Profil

icon Re: Zasto uvek daje 127.0.0.1 ?10.05.2003. u 15:51 - pre 255 meseci
Code:

peca@peca:~$ ./lekino
Ime hosta je: peca
Adresa 0 : 127.0.0.1
Peco, ako ti ovo ne radi, onda baci kompjuter kroz prozor.


Imam mrezicu na prozor, pa ne bih da je cepam :)

Inace, postupak dobijanja IP-a u ovom tvom sorsu je isti kao onaj moj u prvoj poruci.

a za _r funkciuje znam, mada u onom pdf-u sto si mi dao preporucuju getaddrinfo() i naravno inet_ntop().
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Zasto uvek daje 127.0.0.1 ?10.05.2003. u 17:40 - pre 255 meseci
Code:

dejan@gnu ~/prj/c 
$ ./addresses 
Ime hosta je: gnu.nu6.org
Adresa 0 : 192.168.0.12
Peco, ako ti ovo ne radi, onda baci kompjuter kroz prozor.


Ja sam 101% siguran da si ti nesto lose podesio na svojoj masini :)

Naravno da znas za *_r() funkcije! Inace ne bi napisao ono "p.s. kako to da me niko nije upozorio da inet_ntoa i gethostbyname nisu thread-safe na UNIX-ima?"
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.adsl.zonnet.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Zasto uvek daje 127.0.0.1 ?10.05.2003. u 18:14 - pre 255 meseci
Citat:
Predrag Damnjanovic:
Imam mrezicu na prozor, pa ne bih da je cepam :)

Inace, postupak dobijanja IP-a u ovom tvom sorsu je isti kao onaj moj u prvoj poruci.


Peco, legendo. Rekoše ljudi da NE SMEŠ da okačiš ime svog hosta na localhost. Dakle ovo što si napisao ne valja:

Citat:

Evo /etc/hosts
Code:

127.0.0.1       localhost
127.0.0.1               peca.peca.net peca



Da bi imenovao svoj računar potreban ti je IP broj na koji ćeš okačiti ime. Kako je do Interneta dug put, najjednostavnije je da napraviš dummy mrežni interfejs. Kratka škola IP umrežavanja: IP brojevi se pridružuju mrežnim interfejsima a ne računarima. Svaki interfejs mora da ima IP broj a računar može imati više mrežnih interfejsa pa prema tome i pridruženih IP brojeva.

Kako da uradiš ono što ti treba? Ja bih počeo tako što uzmem jednu IP adresu iz privatnog adresnog prostora (na primer 192.168.1.2) i ubacim je u hosts:

Code:

192.168.1.2 peca.peca.net peca


I onda krstim dummy tim brojem:

Code:

# ifconfig dummy0 peca
# route add peca dummy0


pa kad to završim onda probam tvoje programsko čedo. Takođe bih pogledao šta mi vraća komanda hostname, pri podizanju sistema treba da se pomoću nje zada ime sistema, na primer:

Code:

# hostname peca


Da remiziramo?

f
 
Odgovor na temu

sspasic
Sasa Spasic

Član broj: 3261
Poruke: 175
*.medianis.net

Jabber: sspasic@elitesecurity.org
ICQ: 35454521


Profil

icon Re: Zasto uvek daje 127.0.0.1 ?11.05.2003. u 16:24 - pre 255 meseci
Hm, ni kod mene ne ispisuje sve adrese (na Linux-u).
Naime, mislim da ip adrese program ne treba da sazna tako sto krene od hostname-a, vec od liste interfejsa.
Evo jednog u attachu koji bas tako radi.
Prikačeni fajlovi
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.dial.InfoSky.Net

Sajt: www.mycity.rs


+1 Profil

icon Re: Zasto uvek daje 127.0.0.1 ?11.05.2003. u 17:07 - pre 255 meseci
Code:

peca@peca:~$ ./iplist
lo 127.0.0.1
ppp0 195.250.103.74


Hvala bogu, hvala Sasa, znao sam da ima neki drugi nacin za dobijanje IP-a pod unix-ima.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Zasto uvek daje 127.0.0.1 ?11.05.2003. u 20:05 - pre 255 meseci
Sale, pre svega svaka cast za kod!
Druga stvar je tema... Naime, pitanje je bilo "Zasto uvek daje 127.0.0.1", a ne listanje interfejsa...

Citat:
sspasic:
Hm, ni kod mene ne ispisuje sve adrese (na Linux-u).
Naime, mislim da ip adrese program ne treba da sazna tako sto krene od hostname-a, vec od liste interfejsa.
Evo jednog u attachu koji bas tako radi.


Peci jedna kratka poruka: ako si znao, onda je trebalo i da napises kod. Jel' tako?
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.dial.InfoSky.Net

Sajt: www.mycity.rs


+1 Profil

icon Re: Zasto uvek daje 127.0.0.1 ?11.05.2003. u 23:00 - pre 255 meseci
Ja sam Deyane jos u prvoj poruci napisao:
Citat:
Predrag Damnjanovic:
Postoji li neki drugi nacin da dobijem svoj IP?

a subject je takav kakav je jer sam ocekivao da mi kazete da mi je postupak (dobijanja IP-a) losh, tj. da mi kazete taj "drugi nacin".

Izvinjavam se zbog subjecta, i hvala svima na pomoci :)
p.s. Leko, najvise me raduje tvoj povratak na forum!
Pozdrav...
 
Odgovor na temu

[es] :: C/C++ programiranje :: Zasto uvek daje 127.0.0.1 ?

Strane: 1 2

[ Pregleda: 4703 | Odgovora: 28 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.