로그 파일에서 내 공용 IP 주소를 어떻게 추적할 수 있나요?

로그 파일에서 내 공용 IP 주소를 어떻게 추적할 수 있나요?

통계 수집에서 내 웹사이트 방문을 제외하는 데 사용할 수 있도록 내 공개 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

그런 다음 기록을 저장하려면 스크립트로 래핑해야 합니다.

관련 정보