You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
_ b05a87cc9c
use `config_local_dir`
1 year ago
.github/workflows Create rust.yml 1 year ago
src use `config_local_dir` 1 year ago
vendored vendor my fork of `directories`. 1 year ago
.gitignore 🐣 so that's how multicast groups work 1 year ago
.gitmodules vendor my fork of `directories`. 1 year ago
COPYING 📝 preparing to publish 1 year ago
Cargo.lock vendor my fork of `directories`. 1 year ago
Cargo.toml vendor my fork of `directories`. 1 year ago add ini files for both client and server 1 year ago 📝 add idea 1 year ago 🐛 bug: fix server crashing when you send it a packet of ":V\n" 1 year ago


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

Has this ever happened to you?

$ ping $(lookaround find-nick laptop)
PING ( 56(84) bytes of data.

$ lookaround client

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

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.


Make sure Cargo is installed from RustUp.

# Install LookAround with Cargo
cargo install lookaround

# Find your config directory
# Prints something like `Using config dir "/home/user/.config/lookaround"`
lookaround config

Create the files client.ini and/or server.ini in that directory (e.g. /home/user/.config/lookaround/server.ini)

# Clients can store MAC-nickname pairs in client.ini, like a hosts file.
# This is useful if your servers are short-lived and you want the clients
# to be the source of truth for nicknames.
11-11-11-11-11-11 = laptop
22-22-22-22-22-22 = desktop
# Long-lived servers can have their nickname configured in server.ini
nickname = my-computer

Auto-Start (Linux)

Put this systemd unit in ~/.config/systemd/user/lookaround.service:


ExecStart=/home/user/.cargo/bin/lookaround server


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

Auto-Start (Windows)


  • Create a shortcut to the LookAround exe
  • Change the shortcut's target to end in lookaround.exe server so it will run the server
  • Cut-paste the shortcut into the Startup folder in C:\ProgramData\somewhere


Run the server manually: (To test before installing)

lookaround server --nickname my-computer

On a client computer:

# Use the `find-nick` subcommnad to find an IP...
lookaround find-nick laptop
# Prints ``

# Or ping it...
ping $(lookaround find-nick laptop)

# Or SSH to it...
ssh user@$(lookaround find-nick laptop)

# Or pull a file from it
# (after starting `nc -l -p 9000 < some-file` on the laptop)
nc $(lookaround find-nick laptop) 9000

# Use the `client` subcommand to find all servers in the same multicast domain
lookaround client

# Use a longer timeout if servers need more than 500 ms to respond
lookaround client --timeout-ms 1000


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



This Git repo

This repo's upstream is It's mirrored on my GitHub,

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