provision.sh skipped network installation when executed in a private network behind organizational Proxy server

I tried "vagrant up" and "vagrant provision" in a private network of my work, which is connected to the Internet only via HTTP proxy server. I found a message "No external network available. Package installation and maintenance skipped". Reading the provision/provision.sh code told me that it tries to ping public DNS servers to check external network connectivity. In my private network with proxy, ping command can reach none of the public DNS servers, it mistakenly find No network connectivity available even though HTTP messages can come and go. I think the connectivity test should be more robust. It thing one idea could be pinging IP of the platform's default gateway. Pinging the default gateway wil save the case where the platform is behind the Proxy.
>What's the issue with Windows CJK users?

I would like to remind you that the Ping command output on Windows has different format from the one on *nix. Let me show you examples.

On my Windows 7 PC with code page=Japanese I got this:
--------------------------------------------------------------------
C:\Users\myname>ping 172.19.12.150
172.19.12.250 に ping を送信しています 32 バイトのデータ:
172.19.12.250 からの応答: バイト数 =32 時間 =1ms TTL=255
172.19.12.250 からの応答: バイト数 =32 時間 =1ms TTL=255
172.19.12.250 からの応答: バイト数 =32 時間 =1ms TTL=255
172.19.12.250 からの応答: バイト数 =32 時間 =1ms TTL=255

172.19.12.250 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 1ms、最大 = 1ms、平均 = 1ms
--------------------------------------------------------------------
With this ping result given the test "if [[ $ping_result != *bytes?from* ]]; ..."  will be truthy, as the ping_result has no string fragment that matches "nnn bytes from xxxx".

I could intentionally change the code page of the Command Prompt window from Japanese to English by "chcp 437" command (Changes the active console Code Page ). I got the following ping result:
--------------------------------------------------------------------
>chcp 437
>ping 172.19.12.250

Pinging 172.19.12.250 with 32 bytes of data:
Reply from 172.19.12.250: bytes=32 time=1ms TTL=255
Reply from 172.19.12.250: bytes=32 time=4ms TTL=255
Reply from 172.19.12.250: bytes=32 time=6ms TTL=255
Reply from 172.19.12.250: bytes=32 time=2ms TTL=255

Ping statistics for 172.19.12.250:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 6ms, Average = 3ms
--------------------------------------------------------------------
This ping result again does not match the pattern *bytes?from*.

Just for your information I would show you the ping result on my Mac OS X : 
--------------------------------------------------------------------
>ping -c 4 172.19.12.250
PING 172.19.12.250 (172.19.12.250): 56 data bytes
64 bytes from 172.19.12.250: icmp_seq=0 ttl=255 time=2.019 ms
64 bytes from 172.19.12.250: icmp_seq=1 ttl=255 time=29.094 ms
64 bytes from 172.19.12.250: icmp_seq=2 ttl=255 time=5.074 ms
64 bytes from 172.19.12.250: icmp_seq=3 ttl=255 time=2.496 ms

--- 172.19.12.250 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.019/9.671/29.094/11.274 ms
--------------------------------------------------------------------
This ping result will happily match the *bytes?from* pattern.

So, to conclude, the pattern *bytes?from* is applicable only to the Ping output on *Nix. On Windows (regardles if CJK or not), I think, the pattern would never work.