2679 posts
Location
You will never find me, muhahahahahaha
Posted 05 February 2015 - 06:18 PM
IPnet: IP system for Internet Protocol
in
ComputerCraft [v1.0]
Admit it, you have been missing it: a
fully automated network in
Computercraft. It's more than just bradcasting over lagre areas, it is routing information to a specific computer. And now it is even
easier for the developer to create a program using it. Just use the extremelly
simple API included in the package.
Features
- Packet Encryption with AES
- Smart packet rerouting
- Automatic peer discovery
- Route finding
- Packet repeating
- Faulty packets don't crash the computer! WOW
- Client API
- Main router
- Local routers
How To Install IT?
Now thanks to the simple installer you just have to type one command. It is all automatic!
Installer:
pastebin get 2qwZMpSB IPnet
IProuter: (Type it in the shell!)(GUI comming soon, if you behave well, in the next few days)
IPnet IProuter
IPsubRouter:
IPnet IPsubRouter
IPclient:
IPnet IPclient
But How Do I Set It UP?
MainRouter:
Spoiler
The Main Router has to be near level 255. You just load IProuter on it, set it as startup and tada. It is crucial to set up a GPS system because it the IP system works with GPS. There can be an infinite number of Main Routers.SubRouter
Spoiler
Load the program IPsubRouter on it. Set it as startup and you're done. Communication happening on the local area network do not need to pass through the main router.Client:
Spoiler
The client is extremelly easy to set up. It contains an API with the following functions:
IPclient.toReturn()
Initializes the modem, registers with the sub router and does a lot of boring stuff you dont need to know.
IPclient.send(destination,message)
Sends a message over the network to the destination. The desination IP is in the format of a table: {x,y,z,ID}.
IPclient.receive()
Recieves a message. Future Goals:Spoiler
- Improve security
- Packet rerouting based on router load
- Atomatiaclly reconnect a client, even if it has been disconnected
- That's it for now
Download from Pastebin at
2qwZMpSB.
Edited on 24 February 2015 - 01:27 PM
355 posts
Location
Germany
Posted 06 February 2015 - 10:38 AM
I have to admit, the credits saying "by Creator" made me giggle a bit :D/>
355 posts
Location
Germany
Posted 06 February 2015 - 10:50 AM
I can see you are somewhat experienced, and your code looks decent, but the core structure isn't like the "real" internet.
If you like to implement the "real" internet, you can have a look at the ISO OSI model, and take a closer look at all the protocols available at each individual layer from 1 - 4 ;)/>
I've got some ideas myself in doing something like this, but it'll take some time and a lot of reading to do it the "right" way. It's also configuration-wise a lot of stuff. As the "Creator"(see what I did there?) I would need to be RIPE, ISP, and multiple clients at once configuring the entire model. and theres a reason, why companies and organizations with hundreds of workers are specialized on only one part of the configuration. Theres really a lot to do to create a model of the internet in minecraft. And layer 5+ of the ISO OSI model is another completely different part.
So if you think you can do it, than at least start off by layer 1 up to layer 4 and you should be good to go. Don't underestimate the time consumption though ;D
541 posts
Location
Melbourne, Australia
Posted 06 February 2015 - 10:56 AM
Looks very promosing, I will definetly be using this.
2679 posts
Location
You will never find me, muhahahahahaha
Posted 06 February 2015 - 12:14 PM
In Die Tasten,
Thanks for the helpfull comments. I will certainly look into what you told me. I forgot to mention that the IProuter programm isn't totally ready. I havent debugged it. I will do that when I get some time. Probably this afternoon.
In die tasten, are you german? I'm german too. :)/>
2679 posts
Location
You will never find me, muhahahahahaha
Posted 24 February 2015 - 02:06 PM
BIG UPDATE!!!
Soon security improvements are comming. The API will use Diffie-Hellman Key exchange to build a secure connection using AES.
Feel free to comment, support or even tell me that my programs suck!
;)/>
~Creator
756 posts
Posted 25 February 2015 - 07:27 AM
Soon security improvements are comming. The API will use Diffie-Hellman Key exchange to build a secure connection using AES.
Two things about that…
KillaVanilla's implementation of AES is broken, I've fixed it in the EnderAPI version
here.
Your Diffie-Hellman implementation only uses numbers between 100 and 9999, which is very easy to crack within CC.
I've got it to work with negligible lag with numbers between 100000 and 999999.
Edited on 25 February 2015 - 07:18 AM
2679 posts
Location
You will never find me, muhahahahahaha
Posted 25 February 2015 - 02:21 PM
Soon security improvements are comming. The API will use Diffie-Hellman Key exchange to build a secure connection using AES.
Two things about that…
KillaVanilla's implementation of AES is broken, I've fixed it in the EnderAPI version
here.
Your Diffie-Hellman implementation only uses numbers between 100 and 9999, which is very easy to crack within CC.
I've got it to work with negligible lag with numbers between 100000 and 999999.
Thanks,
I thought that else numbers would become too big and it would slow down too much. But I'll test it and see. Have you tried FileNet? It uses IPnet.