mirror of
https://github.com/skidoodle/ipinfo.git
synced 2025-02-15 08:29:17 +01:00
Update readme.md
This commit is contained in:
parent
ae91bd7ca8
commit
8901320eea
1 changed files with 54 additions and 35 deletions
89
readme.md
89
readme.md
|
@ -5,56 +5,56 @@
|
|||
- **IP Geolocation**: Provides city, region, country, continent, and coordinates for any IP address.
|
||||
- **ASN Information**: Includes autonomous system number and organization.
|
||||
- **Hostname Lookup**: Retrieves the hostname associated with the IP address.
|
||||
- **Automatic Database Updates**: Keeps GeoIP databases up-to-date weekly.
|
||||
- **Automatic Database Updates**: Keeps GeoIP databases up-to-date daily.
|
||||
- **JSONP Support**: Allows JSONP responses for cross-domain requests.
|
||||
|
||||
## Example Endpoints
|
||||
### Get information about an IP address
|
||||
```sh
|
||||
$ curl https://ip.albert.lol/8.8.8.8
|
||||
$ curl https://ip.albert.lol/9.9.9.9
|
||||
{
|
||||
"ip": "8.8.8.8",
|
||||
"hostname": "dns.google.",
|
||||
"asn": "15169",
|
||||
"organization": "Google LLC",
|
||||
"city": "Mountain View",
|
||||
"ip": "9.9.9.9",
|
||||
"hostname": "dns9.quad9.net",
|
||||
"asn": "19281",
|
||||
"org": "QUAD9-AS-1",
|
||||
"city": "Berkeley",
|
||||
"region": "California",
|
||||
"country": "US",
|
||||
"country_full": "United States",
|
||||
"continent": "NA",
|
||||
"continent_full": "North America",
|
||||
"loc": "37.4223,-122.0850"
|
||||
"country": "United States",
|
||||
"continent": "North America",
|
||||
"timezone": "America/Los_Angeles",
|
||||
"loc": "37.8767,-122.2676"
|
||||
}
|
||||
```
|
||||
### Get specific information (e.g., city) about an IP address
|
||||
```sh
|
||||
$ curl https://ip.albert.lol/8.8.8.8/city
|
||||
Mountain View
|
||||
$ curl https://ip.albert.lol/9.9.9.9/city
|
||||
{
|
||||
"city": "Berkeley"
|
||||
}
|
||||
```
|
||||
### Use JSONP callback function
|
||||
```sh
|
||||
$ curl http://ip.albert.lol/8.8.8.8?callback=getGoogle
|
||||
/**/ typeof getGoogle === 'function' && getGoogle({
|
||||
"ip": "8.8.8.8",
|
||||
"hostname": "dns.google.",
|
||||
"asn": "15169",
|
||||
"organization": "Google LLC",
|
||||
"city": "Mountain View",
|
||||
$ curl https://test.albert.lol/9.9.9.9?callback=Quad9
|
||||
/**/ typeof Quad9 === 'function' && Quad9({
|
||||
"ip": "9.9.9.9",
|
||||
"hostname": "dns9.quad9.net",
|
||||
"asn": "19281",
|
||||
"org": "QUAD9-AS-1",
|
||||
"city": "Berkeley",
|
||||
"region": "California",
|
||||
"country": "US",
|
||||
"country_full": "United States",
|
||||
"continent": "NA",
|
||||
"continent_full": "North America",
|
||||
"loc": "37.4223,-122.0850"
|
||||
"country": "United States",
|
||||
"continent": "North America",
|
||||
"timezone": "America/Los_Angeles",
|
||||
"loc": "37.8767,-122.2676"
|
||||
});
|
||||
```
|
||||
```html
|
||||
<script>
|
||||
let getGoogle = function(data) {
|
||||
alert("Google's ASN is " + data.asn);
|
||||
let Quad9 = function(data) {
|
||||
alert("Quad9's ASN is " + data.asn);
|
||||
}
|
||||
</script>
|
||||
<script src="https://ip.albert.lol/8.8.8.8?callback=getGoogle"></script>
|
||||
<script src="https://test.albert.lol/9.9.9.9?callback=Quad9"></script>
|
||||
```
|
||||
|
||||
## Running Locally
|
||||
|
@ -63,27 +63,42 @@ let getGoogle = function(data) {
|
|||
git clone https://github.com/skidoodle/ipinfo
|
||||
cd ipinfo
|
||||
docker build -t ipinfo:main .
|
||||
docker run -p 3000:3000 ipinfo:main
|
||||
docker run \
|
||||
-p 3000:3000
|
||||
-e GEOIPUPDATE_ACCOUNT_ID=<> \
|
||||
-e GEOIPUPDATE_LICENSE_KEY=<> \
|
||||
-e GEOIPUPDATE_EDITION_IDS=<> \
|
||||
-e GEOIPUPDATE_DB_DIR=<> \
|
||||
ipinfo:main
|
||||
```
|
||||
### Without Docker
|
||||
```sh
|
||||
git clone https://github.com/skidoodle/ipinfo
|
||||
cd ipinfo
|
||||
go run main.go
|
||||
go run .
|
||||
```
|
||||
|
||||
## Deploying
|
||||
### Docker Compose
|
||||
```yaml
|
||||
version: '3.9'
|
||||
|
||||
services:
|
||||
ipinfo:
|
||||
image: ghcr.io/skidoodle/ipinfo:main
|
||||
container_name: ipinfo
|
||||
image: 'ghcr.io/skidoodle/ipinfo:main'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '3000:3000'
|
||||
- "3000:3000"
|
||||
environment:
|
||||
GEOIPUPDATE_ACCOUNT_ID: ${GEOIPUPDATE_ACCOUNT_ID}
|
||||
GEOIPUPDATE_LICENSE_KEY: ${GEOIPUPDATE_LICENSE_KEY}
|
||||
GEOIPUPDATE_EDITION_IDS: "GeoLite2-City GeoLite2-ASN"
|
||||
GEOIPUPDATE_DB_DIR: /app
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
```
|
||||
### Docker Run
|
||||
```sh
|
||||
|
@ -92,6 +107,10 @@ docker run \
|
|||
--name=ipinfo \
|
||||
--restart=unless-stopped \
|
||||
-p 3000:3000 \
|
||||
-e GEOIPUPDATE_ACCOUNT_ID=<> \
|
||||
-e GEOIPUPDATE_LICENSE_KEY=<> \
|
||||
-e GEOIPUPDATE_EDITION_IDS=<> \
|
||||
-e GEOIPUPDATE_DB_DIR=<> \
|
||||
ghcr.io/skidoodle/ipinfo:main
|
||||
```
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue