ここで説明するように、Django開発サーバーを起動し、ネットワーク上の他のマシンから表示できるようにする必要があります。
http://docs.djangoproject.com/en/dev/ref/Django-admin/#runserver
マシンのIPアドレスは時々変更される傾向があるため、マシンの現在のIPアドレスを使用して小さなシェルエイリアスまたはmanage.pyコマンドを吐き出すものを用意します。
python manage.py runserver $(COMMAND TO FIND MY MACHINE’S IP ADDRESS GOES HERE):8000
ifconfig en0 | grep inet | grep -v inet6
上記の出力は、次の形式になると予想されます。
inet 192.168.111.1ネットマスク0xffffff00ブロードキャスト192.168.111.255
Awkステートメントを追加して2番目の列を印刷し、カットの使用を回避します(awkはかなり標準的なUNIXツールです)。
ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}'
IPの最初の数個が常に同じであるLAN上にある場合、以下を使用して現在のIPを取得します(192.168.111を独自の数に置き換えます)。
ifconfig | grep 192.168.111 | awk '{print $2}'
名前がわかっている別のマシンのIPを取得するには、(ホスト名と192.168.111を独自の値に置き換えてください):
ping -c 1 hostname | grep 192.168.11 | grep 'bytes from' | awk '{print $4}' | sed 's/://g'
あなたはすでに気づいているかもしれませんが、実行中
python manage.py runserver 0.0.0.0:8000
あなたのマシンをネットワーク上の誰にでも見えるようにします。
IPを指定する必要がある理由はありますか?
Thiは、私がすでに見た他のコマンドと同様に機能するはずです。
ifconfig eth0 | grep inet | awk '{print $2}' | cut -d':' -f2
I̶̶t̶h̶i̶n̶k̶̶y̶o̶u̶̶c̶a̶n̶̶a̶l̶s̶o̶̶w̶r̶i̶t̶e̶:̶
̶̶̶h̶o̶s̶t̶n̶a̶m̶e̶̶-̶I̶̶|̶̶c̶u̶t̶̶-̶d̶'̶̶'̶̶-̶f̶1̶̶
最善の解決策は次のとおりです。
ifconfig | sed -n 's/.*inet addr:\([0-9.]\+\)\s.*/\1/p'
人々は文字カウントを使用してIPアドレス行から正しい列をプルしていますが、スペースをdelimとして使用すると、これをさまざまな長さのIPアドレスに拡張できます...
ifconfig en1 | grep inet | grep -v inet6 | cut -d" " -f2
これは、OSXの下で動作する、すばやく汚れた方法です。
/sbin/ifconfig | grep 'inet ' | grep -v '127.0.0.1' | head -n1 | awk '{print $2}'
基本的に、IPV4アドレスを持つすべてのインターフェースを取得し、localhostをスキップして、最初のインターフェースを取得します。
また、ifconfigへのパスを使用します。元から使用したとき、多くのシェルスクリプトブレーキを見てきました。 PATH障害のためのcron。
次のコマンドは、RHEL 6.3では完全に機能します。
ifconfig | grep -v '127.0.0.1' | sed -n 's/.*inet addr:\([0-9.]\+\)\s.*/\1/p'
ifconfig
はおそらくあなたが求めているものです。ただし、grep
を実行して、ノイズの一部を除去する必要があります。
Mac OS X 10.11.6 El Capitan(およびおそらく古いリリース)では、次のコマンドでIPを印刷できます。
ipconfig getifaddr <device>
どこ <device>
はen0
、en1
など.
これは他のいくつかのソリューションほどエレガントではないかもしれませんが、Linuxシステムで機能し、正規表現よりも見やすくなっています。
ifconfig eth0 | grep 'inet addr:' | awk '{print $2}' | awk -F ':' '{print $2}'
これを試してください(Archユーザーの場合)
resolveip -s $HOSTNAME
オルタナティブ
IPv4アドレスを取得するには、以下を使用できます。
Host $(uname -n) | grep "address" | grep -v "IPv6" | head -n 1 | awk '{print $4}'
IPv6 oneを取得するには:
Host $(uname -n) | grep "IPv6 address" | head -n 1 | awk '{print $5}'
必要に応じて、$(uname -n)を$(hostname)に置き換えることができます。
これはデフォルトのインターフェースをチェックし、それを使用してプライマリIPを取得します。多くのインターフェースと大量の仮想IPアドレスがある場合に役立ちます。
netstat -rn | gawk '/UG/ {print $NF}' | xargs ifconfig | gawk 'match($0,/inet addr:(.*) B/,a) {print a[1]}'
デフォルトのインターフェースでIPアドレスを細かく設定する簡単なコマンド
ip -o route get "8.8.8.8" 2>/dev/null | sed -e 's/^.* src \([^ ]*\) .*$/\1/'
または
ip route | grep src | awk -F 'src' '{print $NF; exit}' | awk '{print $1}'
すべてのUnix OSでテスト済み
要約:copy/paste
をコマンドラインに入力して、ネットワークIPアドレスを取得します。これはMac(WiFi)で機能するものです。
echo $(ifconfig en0 | grep inet | grep -v inet6 | cut -d" " -f2)
これをbashスクリプト変数に割り当てます。
LOCAL_IP=$(ifconfig en0 | grep inet | grep -v inet6 | cut -d" " -f2)
これは Valentin Rocher および Matt Kropmton による回答に基づいています。
現在のIPアドレスを見つけるためのソリューション:
route -n get default|grep interface|awk ‘{ print $2 }’|xargs ipconfig getifaddr
macでのみテスト済み。