Gihak111 Navbar

내 컴퓨터의 IP를 30분마다 변경하는 프로그램 만들기

인터넷을 사용할 때 우리의 컴퓨터는 특정한 IP 주소를 가지게 된다.
이 IP 주소는 네트워크에서 장치를 식별하는 역할을 한다.
하지만, 특정한 상황에서는 보안을 위해 일정 시간마다 IP를 변경해야 할 필요가 있다.

이 글에서는 30분마다 내 컴퓨터의 IP를 자동으로 변경하는 프로그램을 만들고, 이를 도메인과 연계하여 동작하도록 설정하는 방법을 설명하겠다.


1. IP 변경 방법 이해하기

IP를 변경하는 방법에는 여러 가지가 있지만, 일반적으로 다음과 같은 방법이 있다.

1) 인터넷 서비스 제공업체(ISP) 기반의 IP 변경

2) VPN을 사용하여 IP 변경

3) 프록시 서버를 이용한 IP 변경

4) Tor 네트워크를 이용한 IP 변경

이번 글에서는 VPN 및 프록시를 활용한 IP 변경 프로그램을 만들어보겠다.


2. 30분마다 IP 변경하는 프로그램 구현

이제 Python을 사용하여 30분마다 IP를 변경하는 프로그램을 만들어 보겠다.

1) VPN을 통한 IP 변경

우선, OpenVPN을 활용하여 IP를 변경하는 방법을 살펴보겠다.

(1) OpenVPN 설치 및 설정

  1. OpenVPN을 다운로드하고 설치한다.
  2. VPN 제공업체에서 .ovpn 설정 파일을 받아둔다.
  3. OpenVPN을 CLI에서 실행할 수 있도록 설정한다.

(2) Python 코드로 자동화

아래 코드는 OpenVPN을 실행하여 30분마다 VPN 서버를 변경하는 방식이다.

import os
import time

def change_ip():
    print("IP 변경 중...")
    os.system("taskkill /F /IM openvpn.exe")  # 기존 VPN 연결 종료
    os.system("openvpn --config path/to/your.ovpn --daemon")  # 새 VPN 실행
    print("새로운 IP로 변경되었습니다!")

if __name__ == "__main__":
    while True:
        change_ip()
        time.sleep(1800)  # 30분 대기 (1800초)

위 코드를 실행하면 30분마다 OpenVPN이 재실행되면서 IP가 변경된다.

2) 프록시 서버를 활용한 IP 변경

프록시 서버를 활용하는 경우, requests 라이브러리를 사용하여 특정 프록시를 적용할 수 있다.

import requests
import random
import time

PROXY_LIST = [
    "http://proxy1:port",
    "http://proxy2:port",
    "http://proxy3:port"
]

def change_proxy():
    proxy = random.choice(PROXY_LIST)
    print(f"새로운 프록시 사용: {proxy}")
    return {"http": proxy, "https": proxy}

if __name__ == "__main__":
    while True:
        proxies = change_proxy()
        try:
            response = requests.get("http://ipinfo.io/ip", proxies=proxies)
            print(f"현재 IP: {response.text.strip()}")
        except Exception as e:
            print(f"프록시 오류 발생: {e}")
        time.sleep(1800)  # 30분마다 변경

위 코드를 실행하면 30분마다 프록시 서버를 변경하여 IP를 바꾸는 기능이 작동한다.


3. 도메인과 연계하여 동작하기

IP 변경 프로그램을 실행하면 내 컴퓨터의 IP는 변경되지만, 특정 도메인과 연계하여 동작할 수도 있다.
예를 들어, mydomain.com이라는 도메인을 내 변경된 IP에 연결하고 싶다면, Dynamic DNS(DDNS) 서비스를 활용할 수 있다.

1) Cloudflare를 활용한 DDNS 자동 업데이트

Cloudflare의 API를 사용하여 내 IP가 변경될 때마다 도메인 DNS 레코드를 자동으로 갱신할 수 있다.

import requests

CLOUDFLARE_API_KEY = "your_api_key"
ZONE_ID = "your_zone_id"
RECORD_ID = "your_record_id"
DOMAIN = "yourdomain.com"

headers = {
    "Authorization": f"Bearer {CLOUDFLARE_API_KEY}",
    "Content-Type": "application/json"
}

def update_dns(new_ip):
    url = f"https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/dns_records/{RECORD_ID}"
    data = {"type": "A", "name": DOMAIN, "content": new_ip}
    response = requests.put(url, headers=headers, json=data)
    print(response.json())

def get_current_ip():
    return requests.get("http://ipinfo.io/ip").text.strip()

if __name__ == "__main__":
    while True:
        new_ip = get_current_ip()
        update_dns(new_ip)
        print(f"도메인 {DOMAIN}의 IP가 {new_ip}로 변경되었습니다.")
        time.sleep(1800)

위 코드를 실행하면 내 IP가 변경될 때마다 Cloudflare를 통해 도메인 IP를 자동으로 업데이트할 수 있다.


4. 결론

이제 여러분도 원하는 방식으로 IP를 변경하고, 도메인과 연계하여 활용할 수 있다.
추가적인 보안이 필요하다면, Tor 네트워크를 활용하는 방법도 고려할 수 있다.