Advertisement
Guest User

Untitled

a guest
Feb 28th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.70 KB | None | 0 0
  1. package main
  2.  
  3. // #include <resolv.h>
  4. import "C"
  5.  
  6. import (
  7.     "fmt"
  8.     "net"
  9. )
  10.  
  11. const ipv4Offset = net.IPv6len - net.IPv4len
  12.  
  13. func main() {
  14.     net.DefaultResolver.PreferGo = false
  15.  
  16.     var odns uint32
  17.  
  18.     if odnss, err := net.LookupIP("resolver1.opendns.com"); err == nil {
  19.         odns = uint32(odnss[0][ipv4Offset]) |
  20.             uint32(odnss[0][ipv4Offset+1])<<8 |
  21.             uint32(odnss[0][ipv4Offset+2])<<16 |
  22.             uint32(odnss[0][ipv4Offset+3])<<24
  23.  
  24.         fmt.Println(odns)
  25.     } else {
  26.         panic(err)
  27.     }
  28.  
  29.     C.res_init()
  30.     C.__res_state().nscount = 1
  31.     C.__res_state().nsaddr_list[0].sin_addr.s_addr = C.in_addr_t(odns)
  32.  
  33.     ips, err := net.LookupIP("myip.opendns.com")
  34.     if err != nil {
  35.         panic(err)
  36.     }
  37.  
  38.     fmt.Println(ips)
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement