Distributed Hash Tables, Part I
Listing 6. portscan.py
def __main__(): id=int(random.uniform(0,2**k)) node=Node(id) join(node, initialContact) line=raw_input('Enter an IP to scan: ').trim() key=long(sha.new(line).hexdigest(),16) value=lookup(node, key) if value==None: f=os.popen('nmap '+args) lines=f.readlines() value=string.join(lines, '\n') store(node, key, value)
In this installment of our two-part series, we discussed the theory behind building DHTs. Next time, we'll talk about practical issues in using DHTs in real-world applications.
Brandon Wiley is a peer-to-peer hacker and current president of the Foundation for Decentralization Research, a nonprofit corporation empowering people through technology. He can be contacted at email@example.com.
Webinar: 8 Signs You’re Beyond Cron
11am CDT, April 29th
Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.Join us!
|Play for Me, Jarvis||Apr 16, 2015|
|Drupageddon: SQL Injection, Database Abstraction and Hundreds of Thousands of Web Sites||Apr 15, 2015|
|Non-Linux FOSS: .NET?||Apr 13, 2015|
|Designing Foils with XFLR5||Apr 08, 2015|
|diff -u: What's New in Kernel Development||Apr 07, 2015|
- Drupageddon: SQL Injection, Database Abstraction and Hundreds of Thousands of Web Sites
- Play for Me, Jarvis
- Non-Linux FOSS: .NET?
- Flexible Access Control with Squid Proxy
- Not So Dynamic Updates
- Designing Foils with XFLR5
- New Products
- Users, Permissions and Multitenant Sites
- diff -u: What's New in Kernel Development