ing
This commit is contained in:
		
							parent
							
								
									f53c8f4117
								
							
						
					
					
						commit
						03b563289c
					
				| @ -84,17 +84,48 @@ func parseDarwinRouteGet(output []byte) (net.IP, string, error) { | ||||
| 	//     gateway: 192.168.1.1 | ||||
| 	//   interface: tun0 | ||||
| 	//       flags: <UP,GATEWAY,DONE,STATIC,PRCLONING> | ||||
| 	lines := strings.Split(string(output), "\n") | ||||
| 	for _, line := range lines { | ||||
| 	// lines := strings.Split(string(output), "\n") | ||||
| 	// for _, line := range lines { | ||||
| 	// 	fields := strings.Fields(line) | ||||
| 	// 	if len(fields) >= 2 && fields[0] == "gateway:" { | ||||
| 	// 		ip := net.ParseIP(fields[1]) | ||||
| 	// 		if ip != nil { | ||||
| 	// 			return ip, "", nil | ||||
| 	// 		} | ||||
| 	// 	} | ||||
| 	// } | ||||
| 
 | ||||
| 	// Darwin route out format is always like this: | ||||
| 	// Internet: | ||||
| 	// Destination        Gateway            Flags        Refs      Use   Netif Expire | ||||
| 	// default            192.168.10.254     UGSc          194        0     en3 | ||||
| 	// 127                127.0.0.1          UCS             0      429     lo0 | ||||
| 	// 127.0.0.1          127.0.0.1          UH              1   587632     lo0 | ||||
| 	// 169.254            link#7             UCS             0        0     en3 | ||||
| 	// 192.168.10         link#7             UCS             4        0     en3 | ||||
| 	// 192.168.10.1       0:11:32:7f:20:61   UHLWIi          1      202     en3   1065 | ||||
| 	// 224.0.0/4          link#7             UmCS            3        0     en3 | ||||
| 	// 224.0.0.251        1:0:5e:0:0:fb      UHmLWI          0     2325     en3 | ||||
| 	// 239.192.152.143    1:0:5e:40:98:8f    UHmLWI          0    22892     en3 | ||||
| 	// 239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI          0    15988     en3 | ||||
| 	// 255.255.255.255/32 link#7             UCS             0        0     en3 | ||||
| 
 | ||||
| 	// Internet6: | ||||
| 	// Destination                             Gateway                         Flags         Netif Expire | ||||
| 	// default                                 fe80::%utun0                    UGcI          utun0 | ||||
| 	// default                                 fe80::%utun1                    UGcI          utun1 | ||||
| 	// default                                 fe80::%utun2                    UGcI          utun2 | ||||
| 	// default                                 fe80::%utun3                    UGcI          utun3 | ||||
| 	outputLines := strings.Split(string(output), "\n") | ||||
| 	for _, line := range outputLines { | ||||
| 		fields := strings.Fields(line) | ||||
| 		if len(fields) >= 2 && fields[0] == "gateway:" { | ||||
| 		if len(fields) >= 2 && fields[0] == "default" { | ||||
| 			ip := net.ParseIP(fields[1]) | ||||
| 			if ip != nil { | ||||
| 				return ip, "", nil | ||||
| 				return ip, fields[5], nil | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return nil, "", errNoGateway | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user