2011-12-20 86 views
1

是否有一個Linux功能等同於InetIsOffline function in Windows(由url.dll提供),它可以告訴我係統是否連接到互聯網,還是我必須自己做點什麼?是否有與Windows InetIsOffline函數相同的Linux?

我問的原因是我是Lhogho的早期採用者。我發現如何在Windows中做到這一點,並希望開發一些能夠在Linux中提供相同功能的東西。

+0

如果工作站知道連接到「互聯網」的設備的狀態。現在,情況越來越少,因爲調制解調器/路由器接管了「端點」(DHCP客戶端,PPPOE客戶端等,以便允許多個設備)的角色,而不是像往常一樣經常使用自己的工作站習慣於在現代時期。 – 2011-12-20 16:54:21

+1

這是一個荒謬的功能(也很奇怪地命名)......你不應該檢查你是否連接到互聯網(實際上,這是不可能以可靠的方式來決定的),但如果你的資源訪問是可訪問的並且實現適當的錯誤處理。如果您只想檢查*某個*網站是否可訪問,則應該檢查該網站。 – 2011-12-21 00:04:32

+1

@尼克拉斯:是的,這是荒謬的。歡迎來到Windows。 ;) – bugmagnet 2011-12-22 01:57:41

回答

1

您可以通過D-Bus與網絡管理員交談,看看是否有任何連接,但除此之外沒有特定的方式。甚至NM也不總是準確的。

+1

和許多系統根本不運行NM。 – 2011-12-21 00:06:44

1

您也可以解析下​​如/proc/net/if_inet6/proc/net/tcp

可是你爲什麼想要做一些文件?如果您想檢查某個網站是否可以訪問,只需以編程方式訪問它(例如使用libcurl)。

而且確實發生了一些網站無法訪問,而其他網站仍然有效。

0

這可能意味着「我有一條默認路由嗎?」,或者至少這是一個合理的實現,恕我直言。所以,只需檢查它的路由表(/proc/net/route):)。

這當然不適用於IPv6(您需要解析ipv6_route),但是決定如何處理該問題很複雜。也許葡萄酒源代碼或MSDN文檔可以揭示這個問題。

相關問題