IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Inscrire l'IP d'un routeur dans un fichier texte, Débutant total, gros challenge...
Options
Cyber-K
posté 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... smile.gif

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 !
Go to the top of the page
 
+Quote Post
__toto__maison
posté 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
Go to the top of the page
 
+Quote Post
l0wc0der
posté 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)...
Go to the top of the page
 
+Quote Post
Cyber-K
posté 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 smile.gif

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 !
Go to the top of the page
 
+Quote Post
jpimbert
posté 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 !!! wink.gif


--------------------
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
Go to the top of the page
 
+Quote Post
Guest_Mic3D_*
posté 25 Oct 2004, 07:00
Message #6





Guests






Bonne remarque l0wc0der smile.gif

Pour le fun aussi : http://www.whatismyip.com tongue.gif
Go to the top of the page
 
+Quote Post
schlum
posté 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 !!!  wink.gif
[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 tongue.gif


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
Cyber-K
posté 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 smile.gif
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 !
Go to the top of the page
 
+Quote Post
schlum
posté 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 smile.gif
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          
Go to the top of the page
 
+Quote Post
Schmurtz
posté 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
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 27th April 2024 - 06:57