웹로그를 이용한 페이지 연관분석
웹로그를 이용한 페이지 연관분석 0. 개요 웹로그의 referer 정보를 이용하여 페이지간의 연결구조를 파악하면, 레이지 링크를 따라움직이지 않고 직접 URL에 접근 또는 임시 페이지 및 취약한 페이지를 찾을수 있다 는 가설을 세우고 접근 1. 웹로그 대상 referer 가 존재하는 웹로그 … Continue reading
웹로그를 이용한 페이지 연관분석 0. 개요 웹로그의 referer 정보를 이용하여 페이지간의 연결구조를 파악하면, 레이지 링크를 따라움직이지 않고 직접 URL에 접근 또는 임시 페이지 및 취약한 페이지를 찾을수 있다 는 가설을 세우고 접근 1. 웹로그 대상 referer 가 존재하는 웹로그 … Continue reading
구글 drive api 사용기 python 구글 drive api 홈페이지 : https://developers.google.com/drive/ 죄측 메뉴 Quickstart > python : https://developers.google.com/drive/quickstart-python 비디오 https://developers.google.com/drive/quickstart-python#optional_view_a_quickstart_video 1단계 : Enable the Drive API 1. Create an API project in the Google APIs Console. 2. Select the Services … Continue reading
설치 하기 전에 python 버전을 확인.
1 2 |
[root@test install]# python -V Python 2.4.3 |
MySQL-python 을 사용하려고 하는데, MySQL-python 은 2.4-2.7버전을 지원. http://sourceforge.net/projects/mysql-python/ 의 아래부분 참고. * Python versions 2.4-2.7; Python 3 support coming soon. 필요한 라이브러리를 설치.
1 |
[root@test install]# yum install gcc mysql-devel python-devel |
SetupTools 설치. SetupTools는 Python으로 만든 프로그램을 자동으로 다운로드하고 설치하는 … Continue reading
1. python 설치 http://www.python.org/ 다운로드 > 릴리즈 > Python 2.5.6 > 2.5.4 다운로드(http://www.python.org/download/releases/2.5.4/) 2. eclipse 설치 http://eclipse.org/ 다운로드 > Eclipse Classic 4.2 다운로드 pydev plugin 설치 : http://pydev.org/updates svn plugin 설치 : http://subclipse.tigris.org/update_1.8.x/ Python 인터프린터 설정 : 이클립스메뉴 > … Continue reading
Programming Languages 에서 Google’s Python Class 의 String 을 스터디.. http://code.google.com/intl/ko-KR/edu/languages/google-python-class/strings.html 대충 읽고 나니 연습문제가! 지난번에 받은 google-python-exercises 에서 basic/string1.py 을 풀어보았다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# A. donuts # Given an int count of a number of donuts, return a string # of the form 'Number of donuts: <count>', where <count> is the number # passed in. However, if the count is 10 or more, then use the word 'many' # instead of the actual count. # So donuts(5) returns 'Number of donuts: 5' # and donuts(23) returns 'Number of donuts: many' def donuts(count): result = 'Number of donuts: '; if count >= 10: result = result + 'many' else: result = result + str(count) return result # B. both_ends # Given a string s, return a string made of the first 2 # and the last 2 chars of the original string, # so 'spring' yields 'spng'. However, if the string length # is less than 2, return instead the empty string. def both_ends(s): if len(s) > 2: result = s[0:2] + s[-2:] else: result = '' return result # C. fix_start # Given a string s, return a string # where all occurences of its first char have # been changed to '*', except do not change # the first char itself. # e.g. 'babble' yields 'ba**le' # Assume that the string is length 1 or more. # Hint: s.replace(stra, strb) returns a version of string s # where all instances of stra have been replaced by strb. def fix_start(s): result = s.replace(s[0], '*') return s[0] + result[1:] # D. MixUp # Given strings a and b, return a single string with a and b separated # by a space '<a> <b>', except swap the first 2 chars of each string. # e.g. # 'mix', pod' -> 'pox mid' # 'dog', 'dinner' -> 'dig donner' # Assume a and b are length 2 or more. def mix_up(a, b): left = b[0:2] + a[2:] right = a[0:2] + b[2:] return left + " " + right |
결과 :
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 |
basic apollo89$ python string1.py donuts OK got: 'Number of donuts: 4' expected: 'Number of donuts: 4' OK got: 'Number of donuts: 9' expected: 'Number of donuts: 9' OK got: 'Number of donuts: many' expected: 'Number of donuts: many' OK got: 'Number of donuts: many' expected: 'Number of donuts: many' both_ends OK got: 'spng' expected: 'spng' OK got: 'Helo' expected: 'Helo' OK got: '' expected: '' OK got: 'xyyz' expected: 'xyyz' fix_start OK got: 'ba**le' expected: 'ba**le' OK got: 'a*rdv*rk' expected: 'a*rdv*rk' OK got: 'goo*le' expected: 'goo*le' OK got: 'donut' expected: 'donut' mix_up OK got: 'pox mid' expected: 'pox mid' OK got: 'dig donner' expected: 'dig donner' OK got: 'spash gnort' expected: 'spash gnort' OK got: 'fizzy perm' expected: 'fizzy perm' basic apollo89$ |
내친김에 basic/string2.py 까지 고고~
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# D. verbing # Given a string, if its length is at least 3, # add 'ing' to its end. # Unless it already ends in 'ing', in which case # add 'ly' instead. # If the string length is less than 3, leave it unchanged. # Return the resulting string. def verbing(s): if len(s) < 3: result = s else : if s[-3:] == 'ing': result = s + 'ly' if s[-3:] != 'ing': result = s + 'ing' return result # E. not_bad # Given a string, find the first appearance of the # substring 'not' and 'bad'. If the 'bad' follows # the 'not', replace the whole 'not'...'bad' substring # with 'good'. # Return the resulting string. # So 'This dinner is not that bad!' yields: # This dinner is good! def not_bad(s): findNot = s.find('not') findBad = s.find('bad') if findBad > findNot: result = s[:findNot] + 'good' + s[findBad+3:] else: result = s return result # F. front_back # Consider dividing a string into two halves. # If the length is even, the front and back halves are the same length. # If the length is odd, we'll say that the extra char goes in the front half. # e.g. 'abcde', the front half is 'abc', the back half 'de'. # Given 2 strings, a and b, return a string of the form # a-front + b-front + a-back + b-back def front_back(a, b): if len(a)%2 == 1: aFront = a[0:(len(a)/2)+1] aBack = a[(len(a)/2)+1:] else: aFront = a[0:(len(a)/2)] aBack = a[(len(a)/2):] if len(b)%2 == 1: bFront = b[0:(len(b)/2)+1] bBack = b[(len(b)/2)+1:] else: bFront = b[0:(len(b)/2)] bBack = b[(len(b)/2):] return aFront + bFront + aBack + bBack |
결과 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
basic apollo89$ python string2.py verbing OK got: 'hailing' expected: 'hailing' OK got: 'swimingly' expected: 'swimingly' OK got: 'do' expected: 'do' not_bad OK got: 'This movie is good' expected: 'This movie is good' OK got: 'This dinner is good!' expected: 'This dinner is good!' OK got: 'This tea is not hot' expected: 'This tea is not hot' OK got: "It's bad yet not" expected: "It's bad yet not" front_back OK got: 'abxcdy' expected: 'abxcdy' OK got: 'abcxydez' expected: 'abcxydez' OK got: 'KitDontenut' expected: 'KitDontenut' basic apollo89$ |
파이썬 스터디를 시작했다.. Google Code 에 좋은 Code University 가 있더라.. http://code.google.com/intl/ko-KR/edu/ Programming Languages 에서 Google’s Python Class 부터 시작하기로 했다. 먼저 Python Set Up 부터.. http://www.python.org/download/ 에 가면 각종 버전별로 다운로드 받을 수 있다. 자신의 OS 에 맞게 … Continue reading
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. 연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다. PHP에서 원격 서비스 거부 취약성이 발견 공격자가 이 취약성을 이용해 사용 가능한 메모리를 소진시켜, … Continue reading
docbook을 설치 하려고 다운을 받았는데 zip파일이였다. 당연히 unzip이 있을 줄 알고
1 |
]$ unzip xxx.zip |
했더니 OTL 없었다..ㅡㅡ;;
1 |
]$ rpm -qa | grep unzip |
요즘 배포판은 unzip도 안깔려있는게냐? 암튼 귀찮아서 yum으로 설치 하려고 했다.
1 2 3 4 5 |
]# yum install unzip Traceback (most recent call last): File "/usr/bin/yum", line 22, in <module> import yummain ImportError: Bad magic number in /usr/share/yum/yummain.pyc |
이게 먼말이다냐? 지난번에 잘썼던 yum인데.. 그냥 yum 을하든 yum list를 하든 모두 … Continue reading
서버에 MSN 메신져를 깔았다..ㅋ 예전에 나모씨가 알려준 pebrot이 갑자기 생각나서..ㅋ 서버에서 하는 text msn의 재미란..ㅋㅋ 홈페이지는 http://pebrot.sourceforge.net/ 이다. pebrot-0.8.8.tar.gz을 다운받고 설치 문서 확인..
1 2 |
]$ tar xvzf pebrot-0.8.8.tar.gz ]$ vi INSTALL |
root로 설치하란다..ㅋ
1 2 3 4 5 |
]# python setup.py install File "setup.py", line 29 utils+= [ ( 'share/doc/pebrot/utils/transparent_bg', glob.glob( 'utils/transparent_bg/*' ) ) ] ^ SyntaxError: invalid syntax |
오호… 이게 웬말인가 Syntax Error라니..ㅡㅡ;; 정보를 얻기위해 다시 pebrot 홈페이지에 방문하니 이런 … Continue reading