| 64 | } |
| 65 | |
| 66 | func hexToIP(h string) net.IP { |
| 67 | n, m := hexToInt2(h) |
| 68 | var ip net.IP |
| 69 | if m != 0 { |
| 70 | ip = make(net.IP, 16) |
| 71 | // TODO: Check if this depends on machine endianness? |
| 72 | binary.LittleEndian.PutUint32(ip, uint32(n>>32)) |
| 73 | binary.LittleEndian.PutUint32(ip[4:], uint32(n)) |
| 74 | binary.LittleEndian.PutUint32(ip[8:], uint32(m>>32)) |
| 75 | binary.LittleEndian.PutUint32(ip[12:], uint32(m)) |
| 76 | } else { |
| 77 | ip = make(net.IP, 4) |
| 78 | binary.LittleEndian.PutUint32(ip, uint32(n)) |
| 79 | } |
| 80 | return ip |
| 81 | } |
| 82 | |
| 83 | // Parse scans and retrieves the opened connections, from /proc/net/ files |
| 84 | func Parse(proto string) ([]Entry, error) { |