https://www.youtube.com/watch?v=SimNmTciQTs
이분 강의 영상에 첫 파트인 영상을 보고 기록하였습니다.
socket 이란?
소켓은 네트워크 통신을 위해 사용해주는 네트워크 인터페이스이다.
쉽게 말해
우린 메세지와 전화로 대화를 주고받는다면
컴퓨터들은 소켓 이라는걸 사용해 데이터를 주고받는다
주로 소켓은 TCP/IP 프로토콜을 이용해 연결을 주고받는다
파이썬 socket 이용한 사이트 ip 알아내기
import socket
import sys
여기서 socket.AF_INET 은 IPV4 를 의미하며
IP 주소라 생각을 하면 된다.
socket.SOCK_STREAM 은 TCP (Transmission Control Protocol) 를 의미한다.
여기서 TCP/UDP 이란 ?
TCP 는 컴퓨터 전송체계이며 전송 중에서도 오류가있는지 체크후 데이터를 재전송하여 소켓중에서도 가장 안전한 데이터 전송방법이다
또한 UDP 도 있는데 UDP 가 보내는 데이터와 TCP 가 보내는 데이터가 다르다
TCP 는 안전하게 데이터를 전송해 컴퓨터에 전송을 하지만
UDP 는 전송중에 연결을 성립하지 않으며
재전송과 과정 그딴거 필요없이 노빠꾸로 빠르게 전송한다는게 특징이다
ping 을 떄리면 저렇게 사이트에 IPV4 가 나오는데
파이썬에서도 구현이가능하다.
ip = socket.gethostbyname('www.google.com')
여기서 변수 ip = 는 socket.gethostbyname 으로 호스트의 이름을 가져오기로 구글사이트에 IPV4 를 가져온다.
실행을 누르면 구글에 IPV4 정보를 알아낼수 있다.
여기서 좀더 업그레이드를 시켜서 오류처리와 정보들을 집어넣어보자.
try:
예외처리를 하기위해 구문을 사용해 주자.
try:
그다음 socket 을 생성해 주고
socket 이 성공적으로 만들어졌으면
print('socket 이 성공적으로 만들어졌습니다')
라는걸 사용해 소켓이 만들어지는데에 실패를 하면
except socket.error as err:
이가 출력되게 하자
print(f'socket 이 만들어지는데 실패하였습니다. {err}')
포트를 지정해주자
나는 80,32,445 로 지정해줬다.
예외처리 설정
호스트 변수 host_ip 호스트의 이름 '구글의' IPV4 를 가져오자
소켓 gaierror 호스트의 이름을 못찾겠을떄 이 에러가 출력되게 하자.
프로그램 종료
host_ip 와 포트를 연동하여 IPV4 정보를 가져오기
그후 소켓연동에 성공했다는 print 출력 {host_up}
끝
'개발 | Development' 카테고리의 다른 글
PYTHON | AKIRA - Framework 개발 & 리뷰 (0) | 2024.10.05 |
---|---|
PYTHON | 네트워크 프로그래밍 [PART 2] (1) | 2024.09.14 |
자바스크립트 일지 [기초개념] [웹해킹] (0) | 2024.08.12 |
자바스크립트 배우기 일지 [웹해킹] [기초문법] (0) | 2024.08.11 |