연구실에서 다수의 서버에서 실험을 돌리는데
클러스터링이 되있지 않아 전부 수동으로 돌린다 ㅜ
그래서 좀더 편하게 실험 데이터를 뽑기위하여 파이썬 스크립팅을 많이 하는데
이번에는 각 서버에서 돌릴 배치파일을 자동으로 실행시켜주게 하기위하여 자신의 IP 를 가져오는것이 필요해졌다.
import socket
print(socket.gethostbyname(socket.getfqdn())) #1-1
print(socket.gethostbyname(socket.gethostname())) #1-2
print(socket.gethostbyname_ex(socket.getfqdn())) #2
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #3
s.connect(('8.8.8.8', 0))
ip = s.getsockname()[0]
print(ip)
일반적으로 #1 방법을 사용한다고 하는데
이게 그냥 cmd 에서 ipconfig, ifconfig했을때 맨처음에 나오는녀석을 가져오는것 같다 ㅡㅡ
서버야 상관없는데 내컴퓨터는 도커에 관한 ip가 자꾸 가져와진다...
#2처럼 쓰면 그 목록을 전부 가져오는것이 가능하다.
여튼 전부가져오고 거기서 IP를 찾는것보다
#3처럼 UDP 커넥을 이용하는 방법으로 하면 바로 찾을수있다. (Private IP 인 경우에만 이며, Public은 외부 응답으로 가져와야한다)
728x90
'프로그래밍 언어 노트 > Python' 카테고리의 다른 글
python defaultdict 과 defaultdict of defaultdict (0) | 2019.08.20 |
---|---|
Python Hex to float (0) | 2019.08.02 |
Python 폴더의 파일 전부 가져오기 (0) | 2019.08.02 |