통계 수집에서 내 웹사이트 방문을 제외하는 데 사용할 수 있도록 내 공개 IP 주소를 로그 파일에 저장하고 싶습니다. 이 시점에서 내 실제 공용 IP 주소를 볼 수 있습니다.Whatsmyip.org-- 하지만 모뎀을 끌 때마다 상황이 변한다고 생각합니다.
고정 공용 IP 주소가 없고 ISP가 고정 IP 범위를 제공하지 않는 것 같습니다.
저는 Linux Mint 17.3을 실행하고 있습니다. 비슷한 로그 파일을 가질 수 있는 방법이 있습니까? 그렇지 않은 경우 나중에 내 IP를 추적할 수 있나요? 추적하는 방법?
답변1
이렇게 하면 공개 IP가 제공됩니다. /ip
자세한 정보를 보려면 해당 부분을 제거하세요.
$ curl ipinfo.io/ip
답변2
noip.com과 같은 일부 동적 DNS 서비스를 사용해 본 다음, IP에 따라 변경되는 DNS 이름으로 리소스에 액세스할 수 있습니다.
일반적으로 공급자는 NAT에 주소 풀을 사용할 것입니다. 각 curl https://ipinfo.io/ip
요청은 NAT 설정에 따라 이 풀에서 임의의 주소를 반환합니다.
웹사이트 방문을 추적하려면 다양한 방법을 사용하는 것이 좋습니다. 철제 비스킷.
다음은 cron에 넣고 주소를 수집하는 작은 Python 코드입니다.
#!/usr/bin/env python
from datetime import datetime
import os
import requests
LOG = '/tmp/ip.log'
URL = 'https://ipinfo.io/ip'
r = requests.get(URL)
if r.status_code == 200:
ip = r.content.decode('ascii').rstrip('\n')
last_ip = None
if os.path.exists(LOG):
f = open(LOG, 'r')
last_ip = f.readlines()[-1].split()[-1]
f.close()
if ip != last_ip:
f = open(LOG, 'a')
f.write("{} {}\n".format(datetime.now(), ip))
답변3
crontab 파일( crontab -e
)에 이 줄을 추가하여 날짜와 공용 IPv4 주소를 라는 파일에 기록합니다. ip_public.txt
이 파일은 매일 정오 12시에 홈 디렉터리에 저장됩니다.
0 0 * * * echo $(date +\%Y-\%m-\%d) $(curl https://ipinfo.io/ip 2>/dev/null) >> ~/ip_public.txt 2>&1
답변4
여기에는 이미 답변이 있지만 DNS를 사용하여 공용 IP 주소를 얻는 또 다른 방법이 있습니다.
dig +short myip.opendns.com @resolver1.opendns.com
그런 다음 기록을 저장하려면 스크립트로 래핑해야 합니다.