Skip to content

Instantly share code, notes, and snippets.

Avatar

Ondřej Caletka oskar456

View GitHub Profile
@oskar456
oskar456 / ipnetworks.py
Created Aug 30, 2012
GrepCIDR in Python
View ipnetworks.py
#!/usr/bin/env python
import ipaddr
class IPNetworks():
"""Represent a set of IP ranges.
Support testing if an IP addres matches any prefix by simple
networks = IPNetworks(['10.0.0.0/8','192.168.0.0/16'])
'10.20.30.40' in networks #True
"""
@oskar456
oskar456 / hanoi-iter.py
Last active Mar 15, 2018
Hanoi towers recursive and iterative solution
View hanoi-iter.py
#!/usr/bin/env python3
# vim: ts=4 expandtab
import sys
class Peg:
""" Stack representing one Hanoi peg. """
def __init__(self, n=0):
self.stack = []
self.stack.extend(range(1,n+1))
@oskar456
oskar456 / ifcfg-eth0
Created May 2, 2013
OpenSUSE Policy Based Routing for IPv6
View ifcfg-eth0
BOOTPROTO='static'
IPADDR='2001:718:1:fff0:50:56ff:feef:4/64'
STARTMODE='onboot'
NAME='VMXNET3 Ethernet Controller MGMT'
PRE_UP_SCRIPT='local-disablera'
POST_UP_SCRIPT='local-postup-pbr6'
PRE_DOWN_SCRIPT='local-predown-pbr6'
LOCAL_PBR6_PRIO='40001'
LOCAL_PBR6_DEFAULTPRIO='60001'
@oskar456
oskar456 / ripe-db-demo-VM-in-KVM
Last active Dec 25, 2015
Run Sample RIPE DB virtual Appliance under QEMU on Gentoo Linux. Before first start, coverting VMDK to QCOW2 disk image is needed. To watch VM console, open VNC viewer to localhost:42
View ripe-db-demo-VM-in-KVM
qemu-img convert -O qcow2 -o preallocation=off -p RIPEDB-disk1.vmdk RIPEDB-disk1.qcow2
@oskar456
oskar456 / prouting.sh
Last active May 14, 2020
A simple script to set up policy routing on linux. It's stateless and detects everything automatically, so all you have to do is to run it after every network subsystem change. I run it in postup and postdown hooks in Gentoo network configuration file.
View prouting.sh
#!/bin/bash
IP="/bin/ip"
function prepare_rt_table() {
local rttables=/etc/iproute2/rt_tables
local iface=$1
[[ "${iface}" = 'lo' ]] && return
if ! egrep -q "\s${iface}\s*"\$ $rttables; then
idx=$(wc -l <$rttables)
@oskar456
oskar456 / kmlbbox.py
Created May 9, 2014
KML bounding box
View kmlbbox.py
#!/usr/bin/env python3
import lxml.etree
tree = lxml.etree.parse('pl.kml')
root = tree.getroot()
ns= 'http://earth.google.com/kml/2.1'
pmarks = tree.findall('//{{{0}}}Placemark'.format(ns))
for pmark in pmarks:
coor= pmark.find('{{{0}}}Point/{{{0}}}coordinates'.format(ns))
long, lat, alt = (float(x) for x in coor.text.split(',',3))
@oskar456
oskar456 / icecast.cgi
Created Jun 14, 2014
MPEG TS to IceCast CGI script
View icecast.cgi
#!/usr/bin/env python
import subprocess
import shlex
import sys
import signal
sys.stdout.write("""Content-Type: audio/mpeg\r
icy-br:192\r
ice-audio-info: ice-samplerate=48000;ice-bitrate=192;ice-channels=2\r
@oskar456
oskar456 / emailer.py
Last active Oct 31, 2016
LinuxDays e-mailer
View emailer.py
#!/usr/bin/env python3
import email.mime.text
import email.utils
import email.header
import smtplib
import copy
import sys
import re
import argparse
@oskar456
oskar456 / czalloc.sh
Last active Aug 29, 2015
Czech IP allocations from RIPE NCC
View czalloc.sh
#!/bin/bash
allocurl="ftp://ftp.ripe.net/pub/stats/ripencc/membership/alloclist.txt"
#The workdir have to exist and be empty! It's content will be deleted after each run.
workdir="/var/tmp/czalloc"
function alloc2lir() {
local dstdir="$1"
local lirfile=""
while read line; do
@oskar456
oskar456 / findword.py
Last active Aug 29, 2015
Find a word that consists of certian letters in dictionary (a.k.a. 4 Pics 1 Word helper)
View findword.py
#!/usr/bin/env python3
import argparse
import collections
import re
parser = argparse.ArgumentParser(
description='Find a word consisting of certain letters in dictionary'
)
parser.add_argument('letters',
You can’t perform that action at this time.