diff --git a/net/test/net_test.py b/net/test/net_test.py
index 23b7868..ef0fc0a 100755
--- a/net/test/net_test.py
+++ b/net/test/net_test.py
@@ -243,7 +243,13 @@
   # Caller also needs to do s.setsockopt(SOL_IPV6, IPV6_FLOWINFO_SEND, 1).
 
 
-# Determine IPv6 configuration.
+# Determine network configuration.
+try:
+  GetDefaultRoute(version=4)
+  HAVE_IPV4 = True
+except ValueError:
+  HAVE_IPV4 = False
+
 try:
   GetDefaultRoute(version=6)
   HAVE_IPV6 = True
diff --git a/net/test/ping6_test.py b/net/test/ping6_test.py
index c5da444..7b51ac4 100755
--- a/net/test/ping6_test.py
+++ b/net/test/ping6_test.py
@@ -6,6 +6,7 @@
 import os
 import posix
 import re
+from scapy import all as scapy
 from socket import *  # pylint: disable=wildcard-import
 import unittest
 
@@ -128,13 +129,13 @@
     s.send(data)
     self.assertValidPingResponse(s, data)
 
-  @unittest.skipUnless(net_test.HAVE_IPV6, "skipping: no IPv6")
   def testIPv6LoopbackPingWithConnect(self):
     s = net_test.IPv6PingSocket()
     s.connect(("::1", 55))
     s.send(net_test.IPV6_PING)
     self.assertValidPingResponse(s, net_test.IPV6_PING)
 
+  @unittest.skipUnless(net_test.HAVE_IPV4, "skipping: no IPv4")
   def testIPv4PingUsingSendto(self):
     s = net_test.IPv4PingSocket()
     written = s.sendto(net_test.IPV4_PING, (net_test.IPV4_ADDR, 55))
@@ -166,6 +167,8 @@
     reply = posix.read(fd, 4096)
     self.assertEquals(written, len(reply))
 
+
+  @unittest.skipUnless(net_test.HAVE_IPV4, "skipping: no IPv4")
   def testIPv4Bind(self):
     # Bind to unspecified address.
     s = net_test.IPv4PingSocket()
@@ -359,6 +362,7 @@
     _, _, flowlabel, _ = src
     self.assertEqual(0xdead, flowlabel & 0xfffff)
 
+  @unittest.skipUnless(net_test.HAVE_IPV4, "skipping: no IPv4")
   def testIPv4Error(self):
     s = net_test.IPv4PingSocket()
     s.setsockopt(SOL_IP, IP_TTL, 2)
@@ -392,7 +396,6 @@
     s.sendto(data, ("127.0.0.1", 987))
     self.assertValidPingResponse(s, data)
 
-  @unittest.skipUnless(net_test.HAVE_IPV6, "skipping: no IPv6")
   def testIPv6LargePacket(self):
     s = net_test.IPv6PingSocket()
     s.bind(("::", 0xace))
