dyninc / dhcptest-python Goto Github PK
View Code? Open in Web Editor NEWA simple script to do some basic load testing on a dhcp server
A simple script to do some basic load testing on a dhcp server
Script will load test a DHCP server by continuosly requesting address leases in a loop using randomly generated mac addresses. This will run serially as written, if you want to have multiple scripts running you will need to run it in several processes. Be aware that if you run it in multiple processes you may run into a number of lease failures on your DHCP client do to multiple discover packets hitting before a request hits thus several requests for the same address may occur. This is the normal behavior as in a real setup a client would then retry several times in the event this occurs. (one thing you *MAY* need to do is set promiscuous for the pcap object -> the open_live call) This is by no means a comprehensive DHCP test, just a little one off script to vefiy that a server is able to handle load numbers. -Couple of pretty simple but sometimes forgotten notes: *Make sure your DHCP server is reachable via it's IP (the client curring the script can see the subnet it's on) *Make sure your DHCP server isn't attempting to lease its own ip (in other words don't assign an ip for testing within the lease range) Usage: dhcp_test.py [DHCP server IP] [DHCP server port - Optional defaults to 67] [Number of Loops - Optional defaults to 1]
Describe the bug or enhancement
The current code exhibits multiple issues that could be causing its malfunction. These include improper use of global variables, reliance on obsolete libraries, the presence of hard-coded values, and limitations in packet handling. Notably, the script employs the "pcap" library to capture packets, which might be constrained by platform dependencies and restrictions. Additionally, the code is written in Python 2, potentially leading to compatibility problems with modern environments. Furthermore, the script lacks comprehensive error handling mechanisms, which could hinder its robustness.
To address these concerns, I intend to allocate some time to rectify these issues. My plan involves revising the code to adhere to recent stable versions of Python and ensuring compatibility. Furthermore, I will focus on enhancing error handling, updating libraries, and optimizing packet handling for better performance.
Assistance Requested
I am seeking assistance in identifying valuable resources that can aid me in resolving these issues effectively. If anyone can recommend pertinent materials or guides, it would greatly contribute to the improvement process. Additionally, insights into specific criteria or test cases under which the refined script can be rigorously tested would be highly beneficial. This will help ensure that the modifications are successful and that the script functions reliably under various scenarios.
About me
I am currently working in Oracle and residing in India, so I would be glad if this is assigned to me!! [any sort of assistance is greatly appreciated]
Traceback (most recent call last):
File "dhcp.2.py", line 175, in
ip_issued = issueRequest(dhcp_ip, dhcp_port, 4, disc_packet)
File "dhcp.2.py", line 81, in issueRequest
pcap_obj = pcap.pcapObject()
AttributeError: 'module' object has no attribute 'pcapObject'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.