[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Modifier/recompiler la commande ping



Le poulpe qui bloppe !, jeudi 14 décembre 2006, 18:56:14 CET
> 
> Bonsoir la liste.
> J'ai une envie bete, inutile et futile (donc indispensable) mais qui
> me tiens à coeur.
> En effet, un ping répond avec des textes préconfigurés, comme par
> exemple:
> 
> #ping localhost
> PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
> 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64
> time= 0.072 ms
> 
> Moi j'aimerais juste pour le fun qu'il réponde PONG au lieu de PING,
> comme cela par exemple:
> 
> #ping localhost
> PONG localhost.localdomain (127.0.0.1) 56(84) bytes of data.
> PONG OK for 64 bytes from localhost.localdomain (127.0.0.1):
> icmp_seq=1 ttl=64 time=0.072 ms
> 
> Je me doute qu'il va falloir recompiler quelques trucs, mais mon
> probleme c'est que j'ai jamais compilé. J'ai déja lu plein de tuto
> sur le net, je pense arriver à compiler, et à retoucher le code. Mais
> j'ai aucune idée d'où se trouvent les sources, et dans quel paquage.
> 
> Si une bonne âme à une idée....
> 
> Merci, et bonne soirée.

$ dpkg -S /bin/ping
iputils-ping: /bin/ping

$ apt-get source iputils-ping
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Nécessité de prendre 132ko dans les sources.
Réception de : 1 http://ftp.fr.debian.org sid/main iputils 3:20020927-3.1 (dsc) [673B]
Réception de : 2 http://ftp.fr.debian.org sid/main iputils 3:20020927-3.1 (tar) [121kB]
Réception de : 3 http://ftp.fr.debian.org sid/main iputils 3:20020927-3.1 (diff) [10,4kB]
132ko réceptionnés en 1s (107ko/s)                 
gpg: Signature made dim 15 oct 2006 06:01:49 CEST using DSA key ID 788A3F4C
gpg: Can't check signature: public key not found
dpkg-source : extraction de iputils dans iputils-20020927
dpkg-source : extraction de iputils_20020927.orig.tar.gz
dpkg-source : ./iputils_20020927-3.1.diff.gz

$ cd iputils-20020927/

$ grep PING *
arping.c:		printf("ARPING %s ", inet_ntoa(dst));
ping6.c:	printf("PING %s(%s) ", hostname, pr_addr(&whereto.sin6_addr));
ping.c:	printf("PING %s (%s) ", hostname, inet_ntoa(whereto.sin_addr));
ping_common.c:		options |= F_PINGFILLED;
ping_common.c:	if (!(options & F_PINGFILLED)) {
ping_common.h:#define	F_PINGFILLED	0x008

$ sed -ie s/PING/PONG/ ping.c ping6.c

$ make ping ping6
[...]

$ cp ping ping6 ~/bin

$ cd ~/bin

$ su -c 'chown root.root ping* ; chmod u+s ping*'

$ ping localhost
PONG localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.067 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.049 ms

  Au lieu du make, tu peux faire un debuild qui :
– te dira quels paquets sont nécessaires ;
– te construira des paquets de remplacement (iputils fournit aussi
  tracepath et arping).

-- 
 Sylvain Sauvage



Reply to: