Skip to content

Instantly share code, notes, and snippets.

View studiawan's full-sized avatar

Hudan Studiawan studiawan

View GitHub Profile
@studiawan
studiawan / ftp-retr.py
Created October 19, 2015 22:22
Using ftplib to download a file
from ftplib import FTP
f = FTP('localhost')
f.login('hudan')
fd = open('2003.pdf', 'wb')
f.retrbinary('RETR 2003.pdf', fd.write)
fd.close()
f.quit()
@studiawan
studiawan / raw-ftp.py
Last active September 1, 2017 19:32
Connect to FTP server using raw socket
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect (('localhost', 21))
commands = ['USER hudan\r\n', 'PASS 123\r\n', 'HELP\r\n', 'QUIT\r\n']
i = 1
while True:
try:
if i > len(commands):
@studiawan
studiawan / raw-list.py
Last active December 1, 2015 09:50
List all files and directories in FTP server home dir
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect (('localhost', 21))
commands = ['USER hudan\r\n', 'PASS 123\r\n', 'TYPE I\r\n', 'EPSV\r\n', 'MLSD\r\n', 'QUIT\r\n']
i = 1
while True:
try:
if i > len(commands):
@studiawan
studiawan / filter_mendeley.py
Last active June 12, 2017 02:18
A Python script to filter exported bib file from Mendeley Desktop
#/usr/bin/env python
# a Python script to filter exported bib file from Mendeley Desktop
import sys
import glob
import os
# read all .bib files
bibfiles = glob.glob('*.bib')
@studiawan
studiawan / ftp-client-list.py
Created October 24, 2016 06:32
FTP client using raw socket displaying list of files and directories.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 21))
welcome_msg = s.recv(1024).strip()
# print welcome_msg
commands = ['USER 5112100155\r\n', 'PASS 123\r\n', 'TYPE I\r\n', 'EPSV\r\n', 'QUIT\r\n']
i = 1
while True:
@studiawan
studiawan / http-simple-server.py
Created November 10, 2016 04:22
Very simple HTTP server
import socket
import select
import sys
server_address = ('127.0.0.1', 80)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(server_address)
server_socket.listen(5)
@studiawan
studiawan / imap-test.py
Created November 28, 2016 23:58
Read email via IMAP command line
import socket
BUFF = 1024
mail_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mail_socket.connect(('mail.***.edu', 143))
mail_socket.recv(BUFF).strip()
commands = ['a1 LOGIN ***@***.edu ***\r\n', 'a2 LIST "" "*"\r\n', 'a3 EXAMINE INBOX\r\n', 'a4 LOGOUT\r\n']
for command in commands:
mail_socket.send(command)
@studiawan
studiawan / test-perceptron.py
Last active August 1, 2018 02:34
NER with scikit-learn
# https://nlpforhackers.io/training-ner-large-dataset/
import os
from nltk import conlltags2tree
import re
from nltk.stem.snowball import SnowballStemmer
import itertools
from nltk import tree2conlltags
from nltk.chunk import ChunkParserI
from sklearn.linear_model import Perceptron, SGDClassifier
@studiawan
studiawan / log-parser-pyparsing.py
Last active May 20, 2020 11:39
Log file (auth.log) parser with PyParsing
import sys
import csv
from pyparsing import Word, alphas, Suppress, Combine, string, nums, Optional, Regex
class AuthLogParser(object):
def __init__(self, log_file):
self.log_file = log_file
self.authlog_grammar = self.__get_authlog_grammar()
@studiawan
studiawan / parallel-log-parser.py
Created May 27, 2020 02:41
Parallel log parser with PyParsing and multiprocessing
import sys
import multiprocessing
import csv
from pyparsing import Word, alphas, Suppress, Combine, string, nums, Optional, Regex
class ParallelLogParser(object):
def __init__(self, log_file):
self.log_file = log_file
self.authlog_grammar = self.__get_authlog_grammar()