본문 바로가기
코딩 연습

내 아이피 찾아보기 [파이썬으로 공인 ip & 내부 ip 검색]

by good4me 2022. 5. 12.

goodthings4me.tistory.com

내 아이피 검색을 위해 구글에서 '내 아이피'로 검색한 결과, 공인 ip 주소를 알려주는 사이트는 수없이 많다. 그러나 파이썬을 공부하는 입장에서 자신의 컴퓨터가 어떤 ip인지 확인할 수 있는 파이썬으로 코드를 만들어보는 것도 좋을 것이다.

 

 

내 IP (공인 아이피 및 내부 아이피) 알아내기

여기서, 공인 ip(외부 ip)와 내부 ip를 구분하기 위해 예를 들어 간단히 설명하면 공인 ip는 가정(아파트 등)에 있는 공유기마다 부여된 하나의 ip 주소이고, 내부 ip는 이 공유기에 연결되는 모든 기기에 배당하는 ip이다. 그래서 공인 아이피는 우리가 변경할 수 없으나 내부 아이피는 변경할 수 있다는 특징이 있다. (공인 아이피가 없이 내부 아이피만으로는 인터넷을 할 수 없음)

 

내 컴퓨터의 공인 ip 검색은 아래 사이트 등에서 확인할 수 있다.

http://ipconfig.kr
https://www.findip.kr
https://ip.pe.kr
...

 

내부 ip는 컴퓨터에서 확인할 수 있는데, 윈도우10 좌측 하단의 시작 버튼 옆 검색(또는 검색 버튼 클릭)에서 'cmd'를 입력하거나 단축키(윈도우키 + Q (또는 R))를 누르고 'cmd'를 입력하고 엔터를 치면 윈도우 명령 프롬프트 창이 뜬다 거기에서 ipconfig 또는 ipconfig /all 을 입력하면 자신의 내부 ip를 확인할 수 있다.

명령프롬프트
명령프롬프트

IPv4 주소 부분이 내부 아이피임

 

[파이썬 소스 코드]

import socket
import requests
from bs4 import BeautifulSoup
import re

## host name
host_name = socket.gethostname()
print(host_name)

## 내부 IP 찾기
host_ip = socket.gethostbyname(host_name)
print(host_ip)  # 172.30.1.23

## 내부 IP 찾기 다른 방법
socket_open = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_open.connect(('www.google.co.kr', 443))
print(socket_open.getsockname()[0])  # 172.30.1.23

## 외부 IP (크롤링으로 추출)
url = 'http://ipconfig.kr/'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'}

response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

ip = soup.select_one('#content-main > h2 > font:nth-child(3)')
print(ip.text.strip())
  • 내부 ip는 socket 모듈을 활용해서 찾고,
  • 공인 아이피 찾는 부분에서는 ipconfig.kr에서 ip 부분을 크롤링하는 방법으로 공인 ip를 가져왔다.

 

 

 

good4me.co.kr

 

 

 

댓글