一つのルータで複数のグローバルIPを扱うのは、マルチセッションと呼ばれる機能を持っているルータで可能となる。いまどきのルータならほぼ持っている。
接続が確立したグローバルIPとルータ配下のローカルIPアドレスで結びつけることで、特定のマシンはそのグローバルIPを使う。
NTTのRV-S340SEで問題なく設定ができた。
最初MACアドレスでグローバルIPとマッピングするのかと思ったが、ほとんどのルータはローカルIPと結びつけるみたいだ。MACとローカルIPの結びつけはDHCPに託しているという判断かな。
兎に角出来て良かった。
株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house
pygame import error!
pygameをやっていると次のようなエラーが出た。
" No module named mixer"
"RuntimeWarning: use mixer: No module named mixer"
理由はeasy_install pygame
としたときにsdlのdevのmixerモジュールを入れていないせいで、その音楽モジュールを含めてインストールされなかったため。
SDL
SDL_image
SDL_ttf
SDL_mixer
ここらへんのモジュールのdevをapt-get install でインストールする。( devバージョンインストールすること)
そのあと、もう一度インストール。
/usr/local/lib/python2.6/dist-packageにあるフォルダpygameのフォルダーを消す。
そんでもう一度easy_install
(実際に僕は消した後は本家のサイトからtarボールを取得してインストールした).
pyusb
python ネタ。pyusbで import usb.coreとするとエラーがでる。これはモジュールが古いのが問題。
easy_install pyusbをする。
udevにユーザーがアクセスできるようにパーミッションを書いて、
udevをリスタートして、USBを抜き差しして認識された。
syslogに出力(Pythonを通じて)
/var/log/syslogにエラーを出力させるときは
import syslog
syslog.syslog( 'error 発生しました。' )
ubuntuで起動時にコマンド実行
/etc/rc.localに
nohup python test_foo_bar.py &
とする。(コマンド名は適当に自分のスクリプト)
nohupは接続が切れても繋げてくれる、&はバックグラウンド実行
株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house
pygameをやっていると次のようなエラーが出た。
" No module named mixer"
"RuntimeWarning: use mixer: No module named mixer"
理由はeasy_install pygame
としたときにsdlのdevのmixerモジュールを入れていないせいで、その音楽モジュールを含めてインストールされなかったため。
SDL
SDL_image
SDL_ttf
SDL_mixer
ここらへんのモジュールのdevをapt-get install でインストールする。( devバージョンインストールすること)
そのあと、もう一度インストール。
/usr/local/lib/python2.6/dist-packageにあるフォルダpygameのフォルダーを消す。
そんでもう一度easy_install
(実際に僕は消した後は本家のサイトからtarボールを取得してインストールした).
pyusb
python ネタ。pyusbで import usb.coreとするとエラーがでる。これはモジュールが古いのが問題。
easy_install pyusbをする。
udevにユーザーがアクセスできるようにパーミッションを書いて、
udevをリスタートして、USBを抜き差しして認識された。
syslogに出力(Pythonを通じて)
/var/log/syslogにエラーを出力させるときは
import syslog
syslog.syslog( 'error 発生しました。' )
ubuntuで起動時にコマンド実行
/etc/rc.localに
nohup python test_foo_bar.py &
とする。(コマンド名は適当に自分のスクリプト)
nohupは接続が切れても繋げてくれる、&はバックグラウンド実行
株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house
UNICODEが表示されていて、これ何?的な時がある。
その時は、Pythonを用いて中身を表示してみよう。
文字列の前にprintを置くことで出力することが出来る。
例えば
\u3057\u3076\u3084\u304f
と取得したとき
u'\u3057\u3076\u3084\u304f'
として、
print u'\u3057\u3076\u3084\u304f'
とすると、中身が表示される。
文字列として格納したい時はevalを使う
a = eval("u'\u3057\u3076\u3084\u304f'")
これで文字列として処理される。
株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house
その時は、Pythonを用いて中身を表示してみよう。
文字列の前にprintを置くことで出力することが出来る。
例えば
\u3057\u3076\u3084\u304f
と取得したとき
u'\u3057\u3076\u3084\u304f'
として、
print u'\u3057\u3076\u3084\u304f'
とすると、中身が表示される。
文字列として格納したい時はevalを使う
a = eval("u'\u3057\u3076\u3084\u304f'")
これで文字列として処理される。
株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house