私のラップトップと携帯電話の間でコンテンツを同期するサービスをホストしたいと思います。サーバーがないので、ラップトップでこれらのサービスをホストすることにしました。携帯電話がサービスに接続できるようにするには、ファイアウォールiptablesでそのポートを開く必要があります。ただし、パブリックネットワークにいるときに潜在的に悪意のあるトラフィックにサービスを公開したくありません。ポートを開きたいがホームネットワークにある場合にのみ可能です。 iptablesを使うとこれは可能ですか?
私のホームネットワークでは、自宅に到着するとすぐに携帯電話が自動的にWi-Fiに接続されます。自宅にいるときは、ラップトップは常にWiFi経由で接続され、ドックに差し込むとイーサネット経由で接続されます。どちらのデバイスもdhcpを介してルータからIPアドレスを取得しますが、デフォルトではルータは毎回同じIPを提供します。
PS:NixOSへの具体的な回答は感謝していますが、違いは私が直接見つけることができるようです。
答え1
ルータにpingを送信し、arpアドレスを確認することをお勧めします。
起動時にインターネット接続が確立される可能性が高いため、起動時に時間ごとにこの方法を使用してください。
ping -c 4 myrouterip > /dev/null 2>&1
arp | awk '$1 == "myroutermac" { print $1}' | sha512sum > /tmp/sum.txt
if cmp -s /tmp/sum.txt ref.txt
then
## at home
fi
どこ
私のパスルーターの象徴的な名前(*)。
私のルーターMac
arp
ホームルーターから返されたMACアドレス。ref.txt
sha512sum(または適切であると判断されるすべての項目)を含むarp| awk ..
ファイルです。(*) ルータと同じ名前でどこかに行かないと仮定そしてルータは同じMacアドレスを使用します。
知っていたらいいな
- ホームルータの名前とそれがarpに表示される方法
- 起動時にスクリプトを起動する方法(U&Lを選択していない場合)