1. 내부 인터페이스 IP 확인하기 1) socket.gethostbyname() python을 통해 내 PC의 내부 IP 확인하는 방법으로 대부분의 검색 결과에서 아래와 같이 안내하고 있습니다. 하지만 가상 인터페이스 등으로 인터페이스가 여러개인 환경에서는 다른 인터페이스의 IP가 나올 수 있습니다. import socket print(socket.gethostbyname(socket.gethostname())) ========== Output: 192.168.68.2 2) socket.getsockname() 이 방법은 socket으로 외부 페이지에 접근하고, 그 접근한 소켓의 정보를 가져오는 방법입니다. 따라서, 실제로 인터넷에 연결된 인터페이스의 IP를 알 수 있습니다. import socket ..
파이썬에서 오라클을 다루기 위해서 주로 cx_Oracle 라이브러리를 많이 사용합니다.그리고 쿼리를 전달할 때 where 절에 한글이 들어가야 하는 경우도 있는데,그냥 전달할 경우 한글을 인식하지 못해 제대로 된 결과 값이 안 나오는 경우가 있습니다. 일반 쿼리# -*- coding: utf-8 -*-import cx_Oracledb = cx_Oracle.connect(DB접속 정보)cursor = db.cursor()SELECT * FROM table_name WHERE title like '%한글제목%' 위와 같이 쿼리를 전달할 경우 제대로 된 결과값이 안 나옵니다.아래 처럼 utf-8로 decode 된 값으로 전달을 해줘야 제대로 출력되는 것을 볼 수 있습니다. utf8 decode 쿼리# -*- ..
python에서 리스트는 여러모로 많이 쓰입니다.보통 리스트에 저장된 모든 값들을 출력을 많이 하는데 중복된 값이 있다면 필요가 없겠죠. 이때 set함수를 사용합니다.set함수는 집합과 관련된 함수로 중복제거에 사용 시 아래와 같이 사용하면 됩니다. list1 = ['1', '3', '5', '2', '4', '1', '5'] print list(set(list1)) 하지만 set함수는 위에서 보시는 것처럼 '순서와 상관없이' 중복만 제거 합니다. 만약 순서를 유지하면서 출력을 하고 싶다면 아래 코드를 이용하시면 됩니다. from collections import OrderedDict list2 = ['1', '2', '3', '4', '5', '3', '5']print list(OrderedDict.f..
예전에는 파이썬에서 웹을 다룰 때 urllib, urllib2, beautifulsoup를 많이 사용했습니다.알려진 웹 관련 라이브러리래봐야 저 정도가 전부였기도 하고... 요즘엔 requests라는 라이브러리를 많이 사용하고 실제로 써보니 확실히 많이 편하구요.처음 requests를 사용한건 IP 조회 코드가 필요해서 쓰게 됬는데, 그 이후로 웹 관련 코드 작성할 때는 requests만 쓰고 있습니다. 다만 이 라이브러리에서의 문제는 간혹 한글이 깨져서 출력되는 경우가 있다는 것...웹 페이지 인코딩 설정에 따라 다른 것 같은데 req.text로 결과값을 가져올 경우 한글이 깨지는 경우가 발생합니다. 문제 해결은 간단하게 해결했는데.. req.content로 결과값을 출력시켜주면 됩니다.원인은 req...
python send mail - 메일 전송 프로그램 이 프로그램이 필요하다고 생각된건 인터넷을 기가랜으로 바꾸기 전에는 집에 공인 IP 한 개만 들어와서 공유기가 꺼지지 않는 이상은 상관없었는데, 기가랜 모뎀이 생기면서 연결되는 PC, IPTV, VoIP, 무선공유기, Rasberry PI까지.. 모든 장치가 공인 IP를 받아온다. 문제는 PC나 Rasberry PI가 부팅 시마다 IP가 바뀌니 원격에서 붙기가 어려웠고, IP를 메일로 보내주는 프로그램을 생각했다.다행히 윈도우 기반인 PC와 Linux 기반인 Rasberry PI 둘 다 Python이 먹히니 귀찮음은 덜었다. 우선, 메일을 보내기 위해서는 SMTP(Simple Mail Transfer Protocol) Server가 필요한데, 인터넷에..
python raw_input() 개행 없이 문자열 입력 받는 방법 python에서 raw_input()으로 입력을 받을 때 여러 줄을 복사, 붙여넣기 할 경우 아래와 같은 문제가 발생합니다. string = raw_input()=====입력 string1string2string3 =====출력string1입력은 여러 줄을 받았으나 string1 뒤의 \n으로 인해 변수에 한 줄만 입력되게 됩니다.흔히 생각할 때는 string변수에 'string1\nstring2\nstring3\n'으로 입력될 것 같지만 python에서 \n를 엔터로 입력받아버려 이런 문제가 발생합니다. 이를 해결하기 위해서는 2가지 방법이 있습니다. 1. import sys2. 반복문을 사용한 raw_input() 1번의 경우 아래와..
Python에서 continue와 pass의 차이점 우선 continue는 for문, if문 같은 곳에서 사용 시 다음 루프로 넘기는 역할을 합니다.pass는 아무 역할 없이 단순히 코드 진행을 하게 됩니다. 아래 코드를 실행해보면 좀 더 이해가 쉽습니다. for x in range(1, 6): if x: print "x is %d" % x pass print "Pass" for y in range(1, 6): print "continue_before" if y: print "y is %d" % y continue print "continue_after" 그리고 아래 결과는 아래와 같습니다. x is 1Passx is 2Passx is 3Passx is 4Passx is 5Passcontinue_befo..
이전 포스팅([Language/Python] - Python shutil copytree 사용 파일 복사)에서는 shutil을 이용하여경로 중간의 폴더가 없더라도 생성해가며 해당 경로로 파일을 복사하는 방법이었습니다. 이번 방법은 파일 복사가 아닌 중간 경로의 폴더가 존재하지 않더라도 생성해가면서 경로를 완성하는 방법입니다.예를 들어 os.mkdir로 C:\test\test1\test2\test3라는 경로가 필요한데 test1, test2라는 중간 경로의 폴더가 없다면, 'WindowsError: [Error 3] : '경로''에러가 발생합니다. 이 경우 os.makedirs()를 사용한다면, 경로를 따라가면서 폴더를 생성하게 됩니다. 사용 라이브러리 : os > makedirs import os os...
- Total
- Today
- Yesterday
- 웹
- hackerschool
- 파이썬
- CODEGATE 2014
- exploit
- CloudFlare
- DNSOverHTTPS
- writeup
- CK Exploit Kit
- 자바스크립트
- Sublime Text 2
- 웨일브라우저
- 분석
- TISTORY
- network
- Wargame
- 사이버테러
- BOF
- DoH
- FTZ
- 프로그래밍
- 악성코드
- 프로그래밍 언어
- 문제풀이
- 개발
- 티스토리
- www
- 스크립트
- python
- 해커스쿨
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |