mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 21:50:28 +08:00 
			
		
		
		
	
		
			
	
	
		
			86 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package utils
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"testing"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestIP2Long(t *testing.T) {
							 | 
						||
| 
								 | 
							
									for _, ip := range []string{
							 | 
						||
| 
								 | 
							
										"0.0.0.1",
							 | 
						||
| 
								 | 
							
										"0.0.0.2",
							 | 
						||
| 
								 | 
							
										"127.0.0.1",
							 | 
						||
| 
								 | 
							
										"192.0.0.2",
							 | 
						||
| 
								 | 
							
										"255.255.255.255",
							 | 
						||
| 
								 | 
							
										"2001:db8:0:1::101",
							 | 
						||
| 
								 | 
							
										"2001:db8:0:1::102",
							 | 
						||
| 
								 | 
							
										"2406:8c00:0:3409:133:18:203:0",
							 | 
						||
| 
								 | 
							
										"2406:8c00:0:3409:133:18:203:158",
							 | 
						||
| 
								 | 
							
										"2406:8c00:0:3409:133:18:203:159",
							 | 
						||
| 
								 | 
							
										"2406:8c00:0:3409:133:18:203:160",
							 | 
						||
| 
								 | 
							
									} {
							 | 
						||
| 
								 | 
							
										t.Log(ip, " -> ", IP2Long(ip))
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestIsIPv4(t *testing.T) {
							 | 
						||
| 
								 | 
							
									type testIP struct {
							 | 
						||
| 
								 | 
							
										ip string
							 | 
						||
| 
								 | 
							
										ok bool
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									for _, item := range []testIP{
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "1",
							 | 
						||
| 
								 | 
							
											ok: false,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "192.168.0.1",
							 | 
						||
| 
								 | 
							
											ok: true,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "1.1.0.1",
							 | 
						||
| 
								 | 
							
											ok: true,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "255.255.255.255",
							 | 
						||
| 
								 | 
							
											ok: true,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "192.168.0.1233",
							 | 
						||
| 
								 | 
							
											ok: false,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
									} {
							 | 
						||
| 
								 | 
							
										if IsIPv4(item.ip) != item.ok {
							 | 
						||
| 
								 | 
							
											t.Fatal(item.ip, "should be", item.ok)
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestIsIPv6(t *testing.T) {
							 | 
						||
| 
								 | 
							
									type testIP struct {
							 | 
						||
| 
								 | 
							
										ip string
							 | 
						||
| 
								 | 
							
										ok bool
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									for _, item := range []testIP{
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "1",
							 | 
						||
| 
								 | 
							
											ok: false,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "2406:8c00:0:3409:133:18:203:158",
							 | 
						||
| 
								 | 
							
											ok: true,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "2406::8c00:0:3409:133:18:203:158",
							 | 
						||
| 
								 | 
							
											ok: false,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											ip: "2001:db8:0:1::101",
							 | 
						||
| 
								 | 
							
											ok: true,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
									} {
							 | 
						||
| 
								 | 
							
										if IsIPv6(item.ip) != item.ok {
							 | 
						||
| 
								 | 
							
											t.Fatal(item.ip, "should be", item.ok)
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |