Hostid s'est changé

dadou -  
Zyclo Messages postés 227 Statut Membre -
Bonjour,

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

2 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
  2. Zyclo Messages postés 227 Statut Membre 17
     
    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