Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add source address option #8

Open
Killeroo opened this issue Dec 7, 2016 · 8 comments
Open

Add source address option #8

Killeroo opened this issue Dec 7, 2016 · 8 comments
Labels

Comments

@Killeroo
Copy link
Owner

Killeroo commented Dec 7, 2016

How to

            SetSocketOption(SocketOptionLevel.Udp, SocketOptionName.NoChecksum, 1);
            sock.Bind((EndPoint)new IPEndPoint(attrs.Source, 0));
@Killeroo Killeroo added this to the v1.3.0 milestone Oct 1, 2017
@Killeroo Killeroo removed this from the v1.4.0 milestone Dec 2, 2019
@hero1900
Copy link

is this feature comming soon?

@Killeroo
Copy link
Owner Author

I know how this could be implemented, will try out some implementations when I get around to working on the next version.

@hero1900
Copy link

thank you very much i would love to help too if you like to share your plans.

@Killeroo
Copy link
Owner Author

Killeroo commented Apr 20, 2020

So the basic plan that I can see, would be to implement our own IPv4 header (something like this, probably with less of the abstration, idealy laid out how we implement ICMP at the moment). Using this implementation we can alter the source address and because we are using RawSockets we can send this and use it as our IP implementation as opposed to the one in .NET.

I have recently been refactoring the actual core ping class so hopefully it can be more easily extended and understood. There is still some refactoring that needs to be done in other places but the core networking stuff is looking good.

So if you want to help and you can do some coding you could experiment to see if the above implementation could work and see if you could get it working within PowerPing. If you don't feel like it then you could help out with testing whenever I get round to implementing it or you could have a look around and see if there are any other low effort ways this could be achieved in standard C# (idealy would rather have a solution that doesn't rely on a third party library).

I can give you some directions and help with getting setup if you do want to help. In any case, I will work on this at some point but there is also alot of other stuff that also needs to be done for this release so I can't really say with certainly when I will get around to it.

Whatever the case any help is welcome and I appreciate the offer regardless.

@hero1900
Copy link

yes i would like to help. i will mostly work on my weekend. i have been developing on Linux platform recently so a direction on what i need and required will be helpful. such as the best IDE and i will mostly use GCC for compilation. don't know what is the best way of communication inform me on what best work for you.

@Killeroo
Copy link
Owner Author

So the project is made with C# using .NET framework 4.5, which is Windows based, so you won't really be able to use GCC for compilation. The project can be developed and run on linux however using .Net Core which is a cross platform version of .NET framework.

Once you have the sdk downloaded and installed you will be able to compile the project, have a look at this script to get an idea of what dotnet commands you will need to run.

I haven't really tested the project within dotnet core for a while but it should work and function pretty similar to the Windows version (I know cursor operations can mess up sometimes). You might get an error with the settings stuff which I can help walk you through.

In terms of IDEs, the choice is yours. Visual Studio Code might be a good choice and would have some good dotnet core and c# integration, but it is primarily up to you. I have been meaning to get .NET core builds and development working again so this might be a good time.

In terms of communication, you can find my email on my profile, just drop me an email if you need anything and we can go from there.

@hero1900
Copy link

i managed to debug and build it on my linux machine with .netcore 3.1 but i had to ditch some functionality as System.Configuration seems to differ in .net core for instance .ApplicationSettingsBase does not exist. After all the application runs and i was able to use it. now i will focus on debugging it and understand the overall functionality of the application.

@Killeroo
Copy link
Owner Author

Cool, good stuff 👍 Yeah I know that issue, if you find a solution to it that put in a pull request because that error has been stopping me from releasing/making dotnet core builds. Ok excellent, give me an email or message here if you need help with anything

boczar pushed a commit to boczar/PowerPing that referenced this issue Apr 22, 2021
@Killeroo Killeroo moved this to To do in PowerPing v2.0.0 May 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: To do
Development

No branches or pull requests

2 participants