2016-10-11 64 views
1

我有一個shell腳本,正在Linux,Mac OSX甚至Cygwin等各種POSIX環境中執行。該腳本需要可靠地檢測給定系統是否啓用了IPv6。例如。我至少可以使用IPv6本地環回(:: 1)。 所以問題是: 如何檢測系統是否在UNIX shell中以POSIX兼容方式啓用了ipv6?如何檢測系統是否在UNIX shell腳本中啓用了IPv6?

+2

它們都支持IPv6。你的意思是測試他們是否擁有它_enabled_?或者有一個全球地址?還是默認路由?或者是其他東西? –

+0

好點。謝謝。 _Enabled_ IPv6是要求 - 我編輯了這個問題。 –

+1

可以分別爲每個設備啓用IPv6。當我斷定檢查是否爲環回設備啓用IPv6時,我是否正確地讀取了您的問題? –

回答

4

這可以通過檢查的/proc/net/if_inet6的所有腦幹如下測試:

test -f /proc/net/if_inet6 && echo "IPv6 supported" || echo "IPv6 not supported" 

我已經在Windows中測試了Ubuntu的,薄荷,樹莓PI和Bash shell中,它在所有這些環境中正常工作。

+2

謝謝。在Mac OSX上,它錯誤地說「IPv6不支持」 - 因爲'/ proc/net/if_inet6'是Linux專用的。 –

+0

'sysctl -a | grep disable_ipv6'? – Bouke

+0

OSX中的一些其他路徑可以在'&&'之前作爲'||'ed測試來測試嗎?祝你們好運。 – shellter

相關問題