티스토리 뷰
[ 1 ]
def main():
[ 2 ]
[ 3 ]
[ 4 ]
print(a)
print(b)
print(c)
if __name__ == "__main__":
main()
[실행 결과]
172.30.1.2
b'\xac\x1e\x01\x02'
172.30.1.2
[작성조건]
1. 파이썬의 socket 라이브러리를 가져오는 코드를 작성하시오.
2. 자신의 호스트명을 ip로 반환한 결과를 a 변수에 저장하는 코드를 작성하시오.
3. a 변수의 ip 주소를 16로 변환하여 b 변수에 저장하는 코드를 작성하시오.
4. b 변수의 ip 주소를 다시10진수롤 변환하여 c 변수에 저장하는 코드를 작성하시오.
Solution
1 2 3 4 | import socket a = socket.gethostbyname(socket.gethostname()) b = socket.inet_aton(a) c = socket.inet_ntoa(b) | cs |
친구가 Python 개인 스터디 중 위 아래 문제를 알려 달라고 해서 확인을 해보게 되었다.
평소 python socket 프로그래밍을 하지 않아서 인지, socket 으로 해결하려고 하지않고,
직접 구현을 했는데 그것도 의미가 있을거 같아서 같이 정리해본다.
(보통 socket을 직접 사용하기보다는, 누군가 socket을 잘 랩핑해서 만들어놓은 flask나 requests 등을 사용한다.)
아래는 내가 오답으로 직접 구현한 inet_aton, inet_ntoa 이다.
python2
1 2 3 4 | import socket a = socket.gethostbyname(socket.gethostname()) b = ''.join(chr(int(x)) for x in a.split(".")) c = '.'.join([str(ord(x)) for x in b] ) | cs |
python 3
1 2 3 4 | import socket a = socket.gethostbyname(socket.gethostname()) b = bytes.fromhex(' '.join(['{0:0{1}x}'.format(int(x),2) for x in a.split(".")])) c = '.'.join([str(x) for x in b]) | cs |
'프로그래밍' 카테고리의 다른 글
Python의 fileinput module로 초간단 파일 업데이트 (0) | 2020.01.13 |
---|---|
Django + Django REST framwork + AWX 개발 레퍼런스 (0) | 2019.03.28 |
Python Restful API 클라이언트 예제 (0) | 2017.12.12 |
PHP Restful API 클라이언트 예제 (0) | 2017.12.12 |
Python 인스턴스 실행 시간 체크 (0) | 2017.08.03 |
댓글
warpmemory
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
페이지
TAG
- MariaDB
- deview
- 코드
- Windows
- client
- configuration
- PowerShell
- RESTful
- Module
- example
- 외부링크
- Web
- 이슈처리
- code
- Linux
- error
- mysql
- 예제
- Ansible
- monitoring
- Python
- File
- 번역
- engineering
- httpd
- limits
- command
- apache
- 명령어
- check
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함