Inscrire l'IP d'un routeur dans un fichier texte, Débutant total, gros challenge... |
Bienvenue invité ( Connexion | Inscription )
Inscrire l'IP d'un routeur dans un fichier texte, Débutant total, gros challenge... |
20 Oct 2004, 16:44
Message
#1
|
|
Adepte de Macbidouille Groupe : Membres Messages : 173 Inscrit : 10 Nov 2002 Lieu : Paris Membre no 4 599 |
Bien le bonjour à vous tous...
Alors voilà les faits : j'ai besoin d'un programme qui puisse écrire dans un fichier texte <? $ip_radio="MON IP"?> , le problème étant que je ne sais pas programmer, et que mon ip est dynamique... Bon j'ai déjà créé un alias dns sur DynDNS.org. Quelqu'un veut-il bien m'aider ? ou m'orienter ? Merci d'avance Kévin -------------------- Un petit café ? Le Café des K !
|
|
|
20 Oct 2004, 18:07
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 915 Inscrit : 9 Mar 2004 Membre no 16 011 |
Applescript me semblerai pas trop mal.....
CODE set my_IP to word 2 of (do shell script "ifconfig en0 |grep netmask") set mon_IP_texte to "<? $ip_radio=\"" & my_IP & "\"?>" writeFile("osx:toto.txt", mon_IP_texte as string) on writeFile(theFile, theData) local fileRef set fileRef to open for access theFile with write permission try set eof fileRef to 0 write theData to fileRef close access fileRef on error errMsg number errNum close access fileRef error errMsg number errNum end try end writeFile Sachant que osx:toto.txt est le nom et chemin du fichier En fonction du type de connection que tu as, tu devras changer le "en0" en "eth0" par exemple. Pour savoir quoi mettre, tape "ifconfig" dans le terminal. Ca donnera qq chose comme : CODE lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1 prefixlen 64 scopeid 0x1 inet 127.0.0.1 netmask 0xff000000 gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 stf0: flags=0<> mtu 1280 en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::230:65ff:fe98:dd10 prefixlen 64 scopeid 0x4 inet 172.20.5.58 netmask 0xffff0000 broadcast 172.20.255.255 ether 00:30:65:98:dd:10 media: autoselect (10baseT/UTP <half-duplex>) status: active supported media: none autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 10baseT/UTP <full-duplex,hw-loopback> 100baseTX <half-duplex> 100baseTX <full-duplex> 100baseTX <full-duplex,hw-loopback> fw2: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 2030 lladdr 00:30:65:ff:fe:98:dd:10 media: autoselect <full-duplex> status: inactive supported media: autoselect <full-duplex> aprés c'est a toi de trouver si ton IP est dans en0 ou autre chose. -------------------- Venez tester votre mac avec bench It! et comparez les résultats
|
|
|
20 Oct 2004, 18:20
Message
#3
|
|
Adepte de Macbidouille Groupe : Membres Messages : 156 Inscrit : 14 Mar 2003 Membre no 6 665 |
Tu lance XCode, puis tu choisis C++ Tool comme nouveau projet, tu l'appelle resolve par exmple tu tapes ca dans le main.cpp
CODE #include <iostream> #include <signal.h> #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/wait.h> #include <netinet/in.h> #include <netdb.h> #include <arpa/inet.h> using namespace std; int main (int argc, char * const argv[]) { // insert code here... if( argc != 2 ){ cout << "usage: resolve <nom de la machine>" << endl; return -1; } struct hostent *h; struct sockaddr_in s; if( (h = gethostbyname( argv[1] )) == NULL ){ cout << "Impossible de trouver l'IP" << endl; } else{ bcopy( h->h_addr , reinterpret_cast<char*>(&s.sin_addr) ,h->h_length); cout << inet_ntoa(s.sin_addr)<< endl; } return 0; } Tu compile, puis avec le terminal tu va la où se trouve l'executable compilé et tu tapes CODE ./resolve monrouteur.dyndns.org > IP.txt Ce qui redirige le resultat dans un fichier txt...et bien sur tu peux faire plein de variations autour de ce code... Ce message a été modifié par l0wc0der - 20 Oct 2004, 18:21. -------------------- Macbook Core 2 Duo 2,16GHz 2Gb (blanc) - Powerbook G4 867MHz 768 Mb - iMac Core Duo 17'' 1.83 GHz (maison)...
|
|
|
20 Oct 2004, 18:29
Message
#4
|
|
Adepte de Macbidouille Groupe : Membres Messages : 173 Inscrit : 10 Nov 2002 Lieu : Paris Membre no 4 599 |
Merci à tous
Bon j'ai pas trop le temps tout de suite, mais je vais tester tout ça, et je vous tiens au courant d'ici demain. Kévin -------------------- Un petit café ? Le Café des K !
|
|
|
20 Oct 2004, 20:31
Message
#5
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 350 Inscrit : 3 Dec 2002 Lieu : La Crau (Var) Membre no 4 993 |
Encore une autre solution, juste pour le fun. En shell cette fois :
CODE ping -c 1 -q mon-nom.dyndns.org | awk '/PING/' | awk -F"(" '{print $2}' | awk -F")" '{print "<? $ip_radio=\""$1"\"?>"}' > toto.txt Bon, d'accord, c'est un peu maladroit, ma cascade de "awk", mais ça marche !!! -------------------- Le temps ne respecte pas ce que l'on fait sans lui
iMac Intel Core2Duo 20" 2,4GHz 3Go 250Go MacOS X 10.5.6 + LaCie FireWire 500 Go + Maxtor FireWire 500 Go |
|
|
Guest_Mic3D_* |
25 Oct 2004, 07:00
Message
#6
|
Guests |
|
|
|
25 Oct 2004, 10:38
Message
#7
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 449 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
QUOTE(jpimbert @ 20 Oct 2004, 21:31) Encore une autre solution, juste pour le fun. En shell cette fois : CODE ping -c 1 -q mon-nom.dyndns.org | awk '/PING/' | awk -F"(" '{print $2}' | awk -F")" '{print "<? $ip_radio=\""$1"\"?>"}' > toto.txt Bon, d'accord, c'est un peu maladroit, ma cascade de "awk", mais ça marche !!! [right][snapback]889468[/snapback][/right] Tant qu'à faire : CODE curl -s --url www.whatismyip.com | awk '/TITLE/ {print "<? $ip_radio=\""$4"\" ?>"}' > ip.txt Plus sûr que de passer par dyndns qui peut ne pas marcher ou n'être pas à jour Et plus court -------------------- I think therefore I Mac
|
|
|
25 Oct 2004, 18:21
Message
#8
|
|
Adepte de Macbidouille Groupe : Membres Messages : 173 Inscrit : 10 Nov 2002 Lieu : Paris Membre no 4 599 |
Merci bien
Je me demandais : comment faire pour qu'une commande de terminal sauvegardée en un fichier .term se lance automatiquement toutes les 24 heures et se referme ? -------------------- Un petit café ? Le Café des K !
|
|
|
25 Oct 2004, 18:25
Message
#9
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 449 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
QUOTE(Cyber-K @ 25 Oct 2004, 19:21) Merci bien Je me demandais : comment faire pour qu'une commande de terminal sauvegardée en un fichier .term se lance automatiquement toutes les 24 heures et se referme ? [right][snapback]894953[/snapback][/right] Laisse tomber le .term et recherche sur le forum "crontab" ou "cron" -------------------- I think therefore I Mac
|
|
|
26 Oct 2004, 11:00
Message
#10
|
|
Adepte de Macbidouille Groupe : Membres Messages : 148 Inscrit : 14 Oct 2003 Membre no 10 385 |
QUOTE(jpimbert @ 20 Oct 2004, 20:31) CODE ping -c 1 -q mon-nom.dyndns.org | awk '/PING/' | awk -F"(" '{print $2}' | awk -F")" '{print "<? $ip_radio=\""$1"\"?>"}' > toto.txt C'est un peu dommage de faire un ping pour ça alors qu'il existe une commande pour faire des requêtes DNS : CODE host mon-nom.dyndns.org | grep "has address" | head -n 1 | awk '{print "<? $ip_radio=\""$4"\"?>"}' > toto.txt où, pour utiliser aussi pour les résolutions netbios ou rendez-vous en plus des DNS : CODE lookupd -q host -a name maxao.free.fr | grep 'ip_address:' | head -n 1 | awk "<? $ip_radio=\""$2"\"?>"}' > toto.txt
|
|
|
Nous sommes le : 27th April 2024 - 06:57 |