0
A
回答
1
嘗試以下操作:
#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;
}
似乎getdomainname()只會告訴你一個NIS或YP域名,你可能不會有設置。另一方面,使用gethostbyname()查詢完整主機名來檢查各種不同的源(包括DNS和/ etc/hosts)以確定您的規範主機名。
+0
沒有最好的解決方案,因爲主機名並不總是具有域名,但足夠好 – wonderer 2009-11-03 14:25:47
0
以供將來參考,Linux和其他一些系統有一個getdomainname()
function應該做你想要什麼,雖然這是not part of the POSIX standard。
相關問題
- 1. 獲取域名在C#中的URL/.NET
- 2. 獲取用戶名和域名在C++
- 3. 如何在C++中使用域名獲取域名IP地址?
- 4. 獲取域名
- 5. 獲取域名
- 6. C++ linux - 在C++ linux應用程序中獲取IP
- 7. 通過Linux中的代碼獲取域名
- 8. linux c - 獲取服務器主機名?
- 9. C編程在Linux中
- 10. 以編程方式獲取cookie的域名
- 11. 獲取Linux shell的名稱
- 12. C#:從域名獲取IP地址?
- 13. 獲取用戶名和域名(域\用戶)在ASP.Net C#
- 14. 在C編程中的線程(linux)
- 15. 編程方式獲得域名
- 16. 獲取域名列表在C#中,淨視圖/域
- 17. 獲取Windows域名
- 18. PHP獲取域名
- 19. Linux C編程獲取客戶端IP始終得到0.0.0.0
- 20. 如何以編程方式獲取域名
- 21. 獲取Glassfish2域的名稱
- 22. 獲取IFrame的域名?
- 23. 在ruby中獲取域名主機名
- 24. 在Linux C++應用程序中獲取SCSI磁盤名稱的方法
- 25. LINUX C編程中的文件路徑
- 26. 使用JSTL獲取URL中的域名?
- 27. linux - 獲取進程的pid
- 28. Linux c編程參考
- 29. linux在藍牙編程c
- 30. Linux C++ GUI編程工具
'getdomainname()'有什麼問題? – 2009-11-02 21:53:07
即使設置了域,它也總是返回「none」 – wonderer 2009-11-02 21:54:44
您很可能面臨配置問題而不是庫問題。你可能想在Serverfault上發佈一個類似的問題來試圖確定爲什麼'getdomainname()'不會返回你所期望的。 – 2009-11-02 21:56:55