-- Written in python -- Releases its IP, waits a specified time in configuration file, and then renews its IP from the DHCP lease. Repeat this process if you aren't in a different class C when you renew. Keep repeating until you are in a different class C than you were originally _AND_ the class C does not exist for a different computer in HOP_CONNECTION table Example: 220.127.116.11 current IP Release [wait X minutes] Renew New IP: 18.104.22.168 [This is in the same class C, so it should release and renew again] and log this 22.214.171.124 into the HOP_LOG database, with the proper status code as mentioned in the Schema Release [wait X minutes] Renew New IP: 126.96.36.199 [This is a different class C. It should stop running release and renew and log the new IP to HOP_CONNECTION, as long as this class C does not exist in HOP_CONNECTION. If it does, release and renew again.] - Local configuration file, which allows you to tune - Length of time to wait while renewing DHCP lease - Number of attempts that result in the same IP before reporting the failure in the log, see below - A unique name for each install -- Uses two database tables: - HOP_CONNECTION table - stores all current IPs -- When starting a hop, remove our current IP, but remember it so we aren't in the same class C as our current IP. -- When completing a hop, check against all other IPs - if any other IPs are in the same class C, hop again, otherwise record our new IP. - HOP_LOG table - stores history of hop activity -- No matter what happens w/ HOP_CONNECTION, also record that activity in HOP_LOG Schema: -- HOP_CONNECTION - id - timestamp - install name - ip -- HOP_LOG - timestamp - install name - status (1 = success, 2 = collides with previous class C, 3 = collides with another servers class C, 4 = too many failed attempts to change ip) - ip
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows? (depending on the nature? of the deliverables):
a)? For web sites or? other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software? installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
DHCP, MySQL, Python