Initial payload
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja> git-svn-id: file:///srv/svn/repo/mizuchi/trunk@1 383d55e2-5bb2-3e47-99b6-5684985ccae5
This commit is contained in:
commit
f5042e19a1
14
COPYING
Normal file
14
COPYING
Normal file
@ -0,0 +1,14 @@
|
||||
Copyright (c) 2021 Willy Goiffon <contact@z3bra.org>
|
||||
Copyright (c) 2023-present Izuru Yakumo <postmaster@chaotic.ninja>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
10
README.md
Normal file
10
README.md
Normal file
@ -0,0 +1,10 @@
|
||||

|
||||
|
||||
# mizuchi
|
||||
The above animated picture says it all.
|
||||
|
||||
## Build
|
||||
`go build -o mizuchi`
|
||||
|
||||
## Usage
|
||||
Only required argument is `-i`
|
45
main.go
Normal file
45
main.go
Normal file
@ -0,0 +1,45 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
type Status struct {
|
||||
IP string `json:"ip"`
|
||||
Hostname string `json:"hostname"`
|
||||
City string `json:"city"`
|
||||
Region string `json:"region"`
|
||||
Country string `json:"country"`
|
||||
Location string `json:"loc"`
|
||||
Organization string `json:"org"`
|
||||
Postal string `json:"postal"`
|
||||
Timezone string `json:"timezone"`
|
||||
}
|
||||
const (
|
||||
url = "https://ipinfo.io"
|
||||
)
|
||||
var (
|
||||
ip_addr string
|
||||
)
|
||||
func init() {
|
||||
flag.StringVar(&ip_addr, "i", "1.1.1.1", "IP address to check")
|
||||
}
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
if len(ip_addr) == 0 {
|
||||
fmt.Println("No IP address given, trying default")
|
||||
}
|
||||
|
||||
var status Status
|
||||
query_url := url + "/" + ip_addr
|
||||
resp, err := http.Get(query_url)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
_ = json.NewDecoder(resp.Body).Decode(&status)
|
||||
fmt.Printf("IP: %v\nHostname: %v\nCity: %v\nRegion: %v\nCountry %v\nLocation: %v\nOrganization: %v\nPostal: %v\nTimezone: %v\n", status.IP, status.Hostname, status.City, status.Region, status.Country, status.Location, status.Organization, status.Postal, status.Timezone)
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user