Go to file
_ fd4f70b1c9 🐛 bug: think I figured out the server part
turns out you can join multiple multicast groups on the same socket.
And then I think the OS or the network somehow decides how to route
packets to you. Without touching anything else, if I'm plugged into
Ethernet, it picks that address (when running client on the desktop)
and when I unplug it, it picks the laptop's WiFi.
2021-12-08 21:31:07 -06:00
.github/workflows Create rust.yml 2021-12-05 18:33:50 -06:00
src 🐛 bug: think I figured out the server part 2021-12-08 21:31:07 -06:00
.gitignore 🐣 so that's how multicast groups work 2021-11-26 21:46:27 +00:00
COPYING 📝 preparing to publish 2021-12-05 23:53:32 +00:00
Cargo.lock ♻️ refactor: make it a little more idiomatic 2021-12-09 00:45:18 +00:00
Cargo.toml ♻️ refactor: make it a little more idiomatic 2021-12-09 00:45:18 +00:00
README.md 📝 bump to 0.1.4, forgot to update the docs 2021-12-08 02:19:56 +00:00
ideas.md ♻️ refactor: make the self-IP code available within the program 2021-12-09 02:06:01 +00:00
issues.md 🐛 bug: fix server crashing when you send it a packet of ":V\n" 2021-12-09 01:46:03 +00:00

README.md

LookAround

"I want to SSH into my laptop, but I keep forgetting its IP!!"

Has this ever happened to you?

LookAround is a Rust program for looking up your computers' MAC and IP addresses within a LAN. There's no central server, so it's not a look-up, it's a look-around.

$ lookaround client

Found 3 peers:
11:11:11:11:11:11 = 192.168.1.101 `laptop`
22:22:22:22:22:22 = 192.168.1.102 `desktop`
33:33:33:33:33:33 = 192.168.1.103 `old-laptop`

The LookAround client uses IP multicast to find LookAround servers within the same multicast domain.

MAC addresses change slower than IP addresses, so if you know that 11:11:11:11:11:11 is your laptop, and your laptop is running LookAround, LookAround will find the IP for you.

Installation

Use the Cargo package manager from Rust to install LookAround.

cargo install lookaround

To run the server as a normal user all the time, put this systemd unit in ~/.config/systemd/user/lookaround.service:

[Unit]
Description=LookAround

[Service]
ExecStart=/home/user/.cargo/bin/lookaround server --nickname my-desktop

[Install]
WantedBy=default.target

Then start the service, check that it's running okay, and enable it for auto-start:

systemctl --user start lookaround
systemctl --user status lookaround
systemctl --user enable lookaround

Usage

Run the server manually: (If you haven't installed it with systemd yet)

lookaround server

Run a client to ping all servers in the same multi-cast domain:

lookaround client

Contributing

Pull requests are welcome. This is a hobby project, so I may reject contributions that are too big to review.

Use the kazupon Git commit message convention

License

AGPL-3.0

This Git repo

This repo's upstream is https://six-five-six-four.com/git/reactor/lookaround. It's mirrored on my GitHub, https://github.com/ReactorScram/lookaround

I don't use GitHub issues, so issues are in issues.md in the repo.