net: re-implement Interfaces and InterfaceAddrs for IPNet, IPv6 on Windows

Fixes #5395

Change-Id: I4322bc8a974d04d9bae6b48c71c5d32d9252973c
Reviewed-on: https://go-review.googlesource.com/3024
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
diff --git a/src/net/interface_test.go b/src/net/interface_test.go
index fbf15de..15c0cd7 100644
--- a/src/net/interface_test.go
+++ b/src/net/interface_test.go
@@ -38,8 +38,7 @@
 		return ""
 	}
 	for _, ifa := range ifat {
-		switch ifa := ifa.(type) {
-		case *IPNet:
+		if ifa, ok := ifa.(*IPNet); ok {
 			if ifa.IP.To4() == nil && ifa.IP.IsLinkLocalUnicast() {
 				return ifa.IP.String()
 			}
@@ -49,10 +48,6 @@
 }
 
 func TestInterfaces(t *testing.T) {
-	if runtime.GOOS == "windows" {
-		t.Skip("temporarily disabled until golang.org/issue/5395 is fixed")
-	}
-
 	ift, err := Interfaces()
 	if err != nil {
 		t.Fatal(err)
@@ -110,10 +105,6 @@
 }
 
 func TestInterfaceAddrs(t *testing.T) {
-	if runtime.GOOS == "windows" {
-		t.Skip("temporarily disabled until golang.org/issue/5395 is fixed")
-	}
-
 	ift, err := Interfaces()
 	if err != nil {
 		t.Fatal(err)