|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
ifconfig solo per visualizzare ip
ho creato un programmino in c che mi permetta di visualizzare l'ip del mio pc in questo modo:
Codice:
#include <stdio.h>
#include <stdlib.h>
void main(){
printf("s\n",system("ifconfig"));
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2003
Città: /dev/zero
Messaggi: 666
|
ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
Questo ti restituisce l'indirizzo ip di ogni interfaccia di sistema tranne quella di loopback. se ti interessa l'indirizzo ip di un interfaccia specifica aggiungi l'interfaccia a ifconfig e togli il grep -v '127.0.0.1
__________________
Powered By Imac 27" , iPhone X and watch Series 5 Si sono un apple fan Ultima modifica di e-Tip : 16-01-2009 alle 10:13. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
scusa...
capisco che magari lo stai usando per imparare a programmare... ma fare un programma che non fa altro che lanciarne un altro, mi sembra un pochino inutile! se lo fai per imparare a programmare, sono sicuro che in C c'e' qualche libreria per riuscire ad avere direttamente l'ip senza usare programmi esterni... altrimenti se invece quello che vuoi e' solo l'ip, ma non ti interessa imparare a programmare, usa uno script bash che ci metti meno! tipo: ifconfig eth0 | grep "inet addr" | cut -d ":" -f 2 | cut -d " " -f 1 ovviamente ti da l'ip di eth0... e l'ho scritto in 10 secondi, quindi magari c'e' di meglio!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
Oppure lo fai in C e al posto di stampare subito a video memorizzi l'output di system in un buffer di char, cerchi il pezzo che ti serve, lo estrai e stampi solo quello.
__________________
[ W.S. ] |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
W.S dici bene mi interesserebbe una funzione in c che mi restituisca l'ip per poi memorizzarlo in un array ma pultroppo il mio manuale non indica una funzione del genere.
Se tu la conosci mi sarebbe di grandissimo aiuto saperla. Comunque grazie a tutti dell'aiuto. E-Tip provo subito i comandi che mi hai indicato e ti farò sapere. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
Un programmino base base per stampare hostname e ip può essere questo:
Codice:
#include <stdio.h>
#include <netdb.h>
int main(void){
char Buf[200];
struct hostent *host;
gethostname(Buf, 200);
host = (struct hostent*)gethostbyname(Buf);
printf("Hostname : %s\n", host->h_name);
printf("IP Address : %s\n", inet_ntoa(*((struct in_addr *)host->h_addr)));
}
__________________
[ W.S. ] |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
w.s il programmino mi da i seguenti worning:
Codice:
prova.c: In function ‘main’: prova.c:11: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’ prova.c:4: warning: return type of ‘main’ is not ‘int’ Codice:
Hostname : ubuntu.ubuntu-domain Segmentation fault |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
hmm, a me va senza problemi..
Codice:
white@lilith:~/ws_dev/scripts$ gcc -o getIp getIp.c white@lilith:~/ws_dev/scripts$ ./getIp Hostname : lilith IP Address : 192.168.0.66 white@lilith:~/ws_dev/scripts$ inet_ntoa(*((struct in_addr *)host->h_addr)) in diversi passi per localizzare il problema.
__________________
[ W.S. ] |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Reggio Emilia e dintorni
Messaggi: 3726
|
Strano, di solito quell'errore capita al contrario, cioè quando si usa main void() senza int main void().
Che compilatore stai usando? C/C++, vero ? Non un c#. @W.S Il tuo hostname è uguale al nick di una mia amica romagnola ... non è che ...
__________________
Open CD ITA - Open DVD ITA - Linux da Zero - RFC1925 - O.S.: Debian & Slackware - Rule #1: It has to work ! AVERE DELLE CONOSCENZE E NON CONDIVIDERLE E' COME NON AVERE NULLA |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
microsoft visual c++ 2008 express edition
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
vorrei chiedervi conoscete qualche manuale c che tratta le librerie per creare socket tipo le librerie che mi state spiegando voi ?
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
Già non avevo notato quel warning, mi ero soffermato sulla differenza dell'inet_ntoa e al segfault.
Quote:
__________________
[ W.S. ] |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Reggio Emilia e dintorni
Messaggi: 3726
|
Cos'è 'sta cosa in neretto ?
Se è quello in edicola, credo sia il c# .net. Ma lo compili su win e lo lanci su Ubuntu ? C'è qualcosa che non mi quadra. P.S: Warnings, con la 'a'
__________________
Open CD ITA - Open DVD ITA - Linux da Zero - RFC1925 - O.S.: Debian & Slackware - Rule #1: It has to work ! AVERE DELLE CONOSCENZE E NON CONDIVIDERLE E' COME NON AVERE NULLA |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
questo spiega perché le librerie sono diverse Se vuoi programmare su linux qui c'è una buona documentazione: http://gapil.truelite.it/ in particolare per la rete: http://www.lilik.it/~mirko/gapil/gap...#x545-257000II però quell'ambiente di sviluppo non va bene, le winsock sono diverse. Usa il classico gcc.
__________________
[ W.S. ] |
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
Ma non sta programmando in win, altrimenti ifconfig non funzionerebbe e nemmeno il programma iniziale.. c'è parecchio che non mi torna in ste thread
__________________
[ W.S. ] |
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Quel codice poi compila giusto perché non ha messo la % nel formato in printf |
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
scusate compilo con gcc
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:42.




















