Hostid s'est changé

Fermé
dadou - 23 avril 2011 à 12:19
Zyclo Messages postés 214 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 28 août 2014 - 25 avril 2011 à 09:38
Bonjour,

Aprés l'installation d'une nouvelle distribution linux mon hostid s'est changé. Comment retourner à mon ancien hostid?

2 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
24 avril 2011 à 12:12
Première étape, chercher dans :

man hostid


... si on nous suggère la commande qui nous intéresse (q pour quitter). Ce n'est manifestement pas le cas, alors voyons avec locate si on trouve une commande qui a un nom qui sent bon

(mando@aldur) (~) $ locate hostid
/usr/bin/hostid
/usr/share/man/fr/man2/gethostid.2.gz
/usr/share/man/fr/man2/sethostid.2.gz
/usr/share/man/fr/man3/gethostid.3.gz
/usr/share/man/fr/man3/sethostid.3.gz
/usr/share/man/man1/hostid.1.gz
/usr/share/man/man2/gethostid.2.gz
/usr/share/man/man2/sethostid.2.gz
/usr/share/man/man3/gethostid.3.gz
/usr/share/man/man3/sethostid.3.gz


Pas de pot, on a juste /usr/bin/hostid, l'exécutable qui est lancé quand tu invoques :

hostid


par contre on voit que dans le man il y a des gethostid et sethostid (sections 2 et 3, celles associées au langage C) :
https://en.wikipedia.org/wiki/Man_page#Manual_sections

Bon bref je ne sais pas si tu sais écrire en langage C mais du coup l'étape suivante serait d'écrire le programme en regardant comment invoquer ces fonctions :

man 2 sethostid
man 2 gethostid


Comme c'est beaucoup trop fatiguant, une petite recherche google et hop on trouve un programme tout prêt :
https://fr.edaboard.com/topic-508981.0.html

C'est parti, ouvrons un fichier toto.c et écrivons dedans (après avoir corrigé les fautes, car il en est truffé :p). Sauve le par exemple dans ton home directory (par exemple /home/dadou).

#include <stdio.h>
#include <unistd.h>

int main() {
    int ret = 0;

    printf("hostid actuel est: %lx\n", gethostid());

    // Dans sethostid tu mets l'ID de ton choix
    if(sethostid(0x11223344) == 0) {
        printf("hostid modifié !\n");
    } else {
        fprintf(stderr, "hostid non modifié ! Êtes vous root ?\n");
        ret = 1;
    }

    printf("hostid actuel : %lx\n", gethostid());

    return ret;
}


Ok il ne reste qu'à compiler tout ça :

cd /home/dadou
gcc -W -Wall toto.c -o corriger_host_id
sudo /home/dadou/corriger_host_id


Bonne chance
0
Zyclo Messages postés 214 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 28 août 2014 17
25 avril 2011 à 09:38
Bonjour,
je suis le post car il m interesse. tu peux changer ton hostid avec cette suite de commandes :
ifconfig eth0 down
ifconfig eth0 hw ether 00:00:00:00:00:00 (new MAC ID)
ifconfig eth0 up

(meme si ca n est pas super rigoureux)

Il y a pourtant un aspect qui m echappe .. le hostid d une machine linux/.unix, est lie à la mac adress de ta carte reseau active... Donc, ce qye je ne comprends pas bien, c est comment, apres la reinstallation de l OS, ton hostid a changé ? (a moins que tu n ai 2 cartes reseaux, et que la nouvelle install a switche sur l autre carte). Cependant, tu peux nous dire comment tu vois (par quelle commande) ton hostid ?

A+
0