autre que getdomainname() est-il possible d'obtenir le nom de domaine sous Linux sans devoir ouvrir et analyser les fichiers dans/etc?Obtenir le nom de domaine dans linux (programmation C)
Le code est apprécié.
Merci
autre que getdomainname() est-il possible d'obtenir le nom de domaine sous Linux sans devoir ouvrir et analyser les fichiers dans/etc?Obtenir le nom de domaine dans linux (programmation C)
Le code est apprécié.
Merci
les opérations suivantes:
#include <string.h>
#include <netdb.h>
#include <unistd.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
char hn[254];
char *dn;
struct hostent *hp;
gethostname(hn, 254);
hp = gethostbyname(hn);
dn = strchr(hp->h_name, '.');
if (dn != NULL) {
printf("%s\n", ++dn);
}
else {
printf("No domain name available through gethostbyname().\n");
}
return 0;
}
Il semble que getdomainname() ne vous en dire un nom de domaine NIS ou YP, que vous n'aurez probablement pas réglée. En revanche, interroger le nom d'hôte complet avec gethostbyname(), vérifie une variété de sources différentes (y compris DNS et/etc/hosts) pour déterminer votre nom d'hôte canonique.
Non la meilleure solution puisque le nom d'hôte n'a pas toujours le nom de domaine mais assez bon – wonderer
Pour référence ultérieure, Linux et d'autres systèmes ont une getdomainname()
function qui devrait faire ce que vous voulez, bien que ce soit not part of the POSIX standard.
Merci, mais si vous lisez ma question, vous pouvez voir que je suis au courant de cette fonction – wonderer
Oui, absolument, mais vous et d'autres qui viennent ici pour une réponse à la même question peut valoriser une référence à la documentation. – Tim
un grand merci. J'ai lu l'homme quand j'écrivais le code – wonderer
Quel est le problème avec 'getdomainname()'? –
il renvoie toujours "none" même lorsque le domaine est défini – wonderer
Vous êtes probablement confronté à un problème de configuration plutôt que celui d'une bibliothèque. Vous voudrez peut-être poser une question similaire sur Serverfault pour essayer de déterminer pourquoi 'getdomainname()' ne renvoie pas ce que vous attendez. –