-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d50afa8
commit a32d4bb
Showing
4 changed files
with
105 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package main | ||
|
||
import ( | ||
"io/ioutil" | ||
"net" | ||
"net/http" | ||
) | ||
|
||
func getLocalIP() string { | ||
resp, _ := http.Get("https://api.ipify.org") | ||
body, _ := ioutil.ReadAll(resp.Body) | ||
return string(body[:]) | ||
} | ||
|
||
func checkIPSyntax(ipaddress string) bool { | ||
addr := net.ParseIP(ipaddress) | ||
if addr == nil { | ||
return false | ||
} | ||
return true | ||
} | ||
|
||
func resolveDNSHostname(hostname string) string { | ||
address, _ := net.LookupHost(hostname) | ||
return address[0] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package main | ||
|
||
import "fmt" | ||
|
||
func printHeader() { | ||
fmt.Println("------------------------------") | ||
fmt.Println("| IP Address Information |") | ||
fmt.Println("| Lookup Tool |") | ||
fmt.Println("| (iPilot) |") | ||
fmt.Println("| |") | ||
fmt.Println("| By Luke Tainton |") | ||
fmt.Println("| @luketainton |") | ||
fmt.Println("------------------------------") | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
package main | ||
|
||
import ( | ||
"encoding/json" | ||
"fmt" | ||
"io/ioutil" | ||
"net/http" | ||
"strings" | ||
) | ||
|
||
// IPAddressInfo is the IP Address information from API | ||
type IPAddressInfo struct { | ||
Status string `json:"status"` | ||
Country string `json:"country"` | ||
CountryCode string `json:"countryCode"` | ||
Region string `json:"region"` | ||
RegionName string `json:"regionName"` | ||
City string `json:"city"` | ||
ZIP string `json:"zip"` | ||
Latitude float32 `json:"lat"` | ||
Longitude float32 `json:"lon"` | ||
Timezone string `json:"timezone"` | ||
ISP string `json:"isp"` | ||
Organisation string `json:"org"` | ||
AS string `json:"as"` | ||
IPAddress string `json:"query"` | ||
} | ||
|
||
func getIPInfo(ipaddress string) IPAddressInfo { | ||
apiEndpoint := "http://ip-api.com/json/" + ipaddress | ||
resp, _ := http.Get(apiEndpoint) | ||
body, _ := ioutil.ReadAll(resp.Body) | ||
// fmt.Print(string(body)) | ||
infoString := string(body) | ||
var info IPAddressInfo | ||
err := json.Unmarshal([]byte(infoString), &info) | ||
if err != nil { | ||
fmt.Println(err) | ||
} | ||
return info | ||
} | ||
|
||
func printIPInfo(input string) { | ||
var IPInfo IPAddressInfo = getIPInfo(input) | ||
var location string = IPInfo.Country + "/" + IPInfo.RegionName + "/" + IPInfo.City | ||
fmt.Println("IP Address: ", IPInfo.IPAddress) | ||
fmt.Println("Location: ", location) | ||
fmt.Println("Timezone: ", IPInfo.Timezone) | ||
fmt.Println("ISP: ", IPInfo.ISP) | ||
fmt.Println("BGP AS: ", strings.Fields(IPInfo.AS)[0]) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters