ホーム » Linux » 

iPhone、Androidや携帯、PCを判別 PHP


--- 広告 ---
--- 広告 ---

PHPでPC、携帯、iPhone、Androidを判別する方法

ユーザーエージェントを知る

$_SERVER['HTTP_USER_AGENT'];

CentOS smb.confの設定


--- 広告 ---
--- 広告 ---

CentOS 6.0, Samba 3.5.4

User認証なし

# -- Netwrok Related Options

workgroup = WORKGROUP
server string = Hoge Samba %v
netbios name = Hoge
unix charset = UTF-8
dos charset = CP932
hosts allow = 127. 192.168.0. 192.168.1.

# -- Standalone Server Options

security = share
guest account = nobody
guest ok = yes
username map = /etc/samba/smbusers

# -- Printing Options

load printers = no
; cups options = raw
disable spoolss = yes
printing = bsd

[Share]
comment = Share Folder
path = /home/share
browseable = yes
writable = yes
create mask = 0777
directory mode = 0777

User認証あり

# -- Netwrok Related Options

workgroup = WORKGROUP
server string = Hoge Samba %v
netbios name = Hoge
unix charset = UTF-8
dos charset = CP932
hosts allow = 127. 192.168.0. 192.168.1.

# -- Standalone Server Options

username map = /etc/samba/smbusers

# -- Printing Options

load printers = no
; cups options = raw
disable spoolss = yes
printing = bsd

sambaをインストールする
yum install samba

firewallの設定
# system-config-firewall-tui
参照URL http://kajuhome.com/security_trouble.shtml

SELinux off
/etc/sysconfig/selinux
 SELINUX=disabled

# /etc/rc.d.init.d/smb start
# /etc/rc.d/init.d/nmb start

古いlinuxサーバのsambaで使っていたcp932 日本語ファイル名をutf8に変換


--- 広告 ---
--- 広告 ---

$ sudo apt-get install convmv とか $ sudo yum install convmv で convmv をインストール。

$ convmv -r -f cp932 -t utf-8 * --notest

で、カレントディレクトリ以下の全てのファイル名の文字コードがCP932からUTF-8に変換できるそうです。

Linuxでファイル名の文字コードを変換する(文字化けを直す) に感謝です。

Samba 2 日本語版の日本語ファイル名の Samba 3 への移行方法 この記事も大変参考になりました。ありがとうございます。

CAPのファイル名をEUCで表示を参考にさせていただき、スクリプトを作成。 本当に感謝、感謝でございまする。

上記 code.plを参考にさせていただき、 kanjiconvert.pl、kanjicv01.pl、0000kj.plを作成。
perl は、本当に久しぶりなので懐かしい感じがしました。 (^^;

Linuxカーネル、次バージョンが「3.0」!?


--- 広告 ---
--- 広告 ---

2011年5月25日付けマイコミジャーナルの記事から

5月25日現在、Linuxカーネルの最新安定版は5月19日にリリースされたLinux 2.6.39となる。順当にいけば次のリリースはLinux 2.6.40となるが、これを契機にバージョン番号が「2.8.0」または「3.0」へ変更される可能性がでてきた。Linuxカーネルのメーリングリストでカーネルのバージョン番号が話題になっている。

最新デスクトップ環境『GNOME 3』を搭載した『Fedora 15』が登場
 2011年5月26日 japan.internet.comの記事

Red Hat が後援する Fedora Project は24日、最新『Linux』ディストリビューション『Fedora 15』(開発コード名『Lovelock』) を公開した。この最新版は、『GNOME Shell』のユーザー インターフェースをはじめ、『GNOME 3』のデスクトップ環境を完全な形でユーザーに提供する。

また Fedora 15 では、セキュリティ、スピン、ネットワーキング、仮想化の各機能も刷新された。

Fedora のプロジェクト リーダー Jared Smith 氏は、取材に対して次のように答えている。「GNOME Shell は大きな変革だ。GNOME 3 と GNOME Shell が『GNOME 2』の体験とは全く根本的に異なることを言わないのは不親切というものだろう。それでもやはり、多くの人々がこの変化に新鮮さを感じている」

アップストリーム プロジェクトとしての GNOME 3 は、4月に正式にリリースされた。Fedora 15 は、コアリリースの一部として GNOME 3 を含む最初のメジャー Linux ディストリビューションとなる。Smith 氏によると、GNOME Shell は、ユーザーのために割り込みを減らし、データやアプリケーションへのアクセスが容易になるよう設計されたという。

ただし、Linux コミュニティのすべての人が GNOME Shell に好感を持っているわけではない。競合する Linux ディストリビューション『Ubuntu』は、最新版『Ubuntu 11.04』で『GNOME』に別れを告げ、GNOME 3 に代わる有力なデスクトップ環境として独自に開発した『Unity』をリリースした。Smith 氏は、GNOME Shell を実行できるグラフィックス ハードウェアを持たない『Fedora』ユーザー向けとして、『GNOME パネル』『Metacity』『notification-daemon』などを利用するフォールバック モードを用意したと説明している。

Red Hat Enterprise Linux 6.1リリース 2011/05/26 CodeZineの記事から
 レッドハットは、「Red Hat Enterprise Linux」の最新版となる「Red Hat Enterprise Linux 6.1」を、19日(現地時間)にリリースした。このリリースは、「Red Hat Enterprise Linux 6」系列では最初のサービスパックとなる。

 「Red Hat Enterprise Linux 6.1」では、信頼性やスケーラビリティ、性能の向上が行われており、さらにさまざまなセキュリティアップデートやバグフィックス、ファイルシステムのパフォーマンス改善、各種ハードウェアのサポートが追加されている。

 仮想化に関しても性能が向上しており、ゲストとハイパーバイザホスト両方の性能で、SPECvirtベンチマークでトップの座を獲得しているという。

PyPy 1.5リリース


--- 広告 ---
--- 広告 ---

2011/05/06付け CodeZineの記事から

 Pythonで実装されたPythonコンパイラ、「PyPy」の最新版となるバージョン1.5が、4月30日にリリースされた。「PyPy 1.5」は、CPython 2.6および2.7の機能を含んでおり、バージョン1.4と比較して25%高速化されているという。

 対応するプラットフォームは、Linux(32ビット/64ビット)、Mac OS X。Windows版はベータ版となっている。また、64ビット版Windowsは、現状では未サポート。

 「PyPy 1.5」では、JITコンパイラのトレースに「Loop invariant code motion」と呼ばれるコンパイラ最適化技術が追加されている。

 また、CPython拡張モジュールAPIも改良され、より多くの拡張モジュールが利用可能になった。この変更に伴い、TkinterやIDLEが動作するようになっている。

コンパイラっていうのが良いですね。 (^^)v

モバイルトレジャー


--- 広告 ---
--- 広告 ---

最近、携帯アフィリエイトの検証をしていたら、便利なツールが発売になりました。

発売されたのはモバイルトレジャー。携帯アフィリエイトを効率よく検証したいので早速モバイルトレジャーを購入しました。

なかなか良いです。 (^^)v

携帯アフィリエイト用に特化したWindosで動作するツールなので、サクッとページを作る事ができます。 使ってみて便利なのは相互リンク機能で関連が深いジャンルに相互リンクが自動で出来るところです。

普段はWordPressにプラグインを追加して携帯対応にしていますが、無料ホームページを使って量産型の携帯アフィリエイトを作成する場合はモバイルトレジャーが必須になると思います。

Linuxサーバでも同じようなツールを作ってみようかなと思わせてくれた超便利ツールです。


「時間効率」「作業効率」を追求した最新ツール!【モバイルトレジャー】

気になるUbuntu 11.04


--- 広告 ---
--- 広告 ---

もう5月です。大震災後にばたばたとしている間に桜が咲き、桜が散りいつのまにか5月です。

googleで検索していたら気になる記事を発見。Ubuntu11.04の記事です。
一台ノートパソコンを購入して試したいけれど、現在新しい仕事の仕方を模索中。仕事のほうを優先です。(^^;

落ち着いたら試したいのでメモメモです。

Natty Narwhalで粋な人生に? Ubuntu 11.04を試す

gomeではなくNatty narwhalが採用されるらしい。
* Linux カーネル 2.6.38
* Frefox 4の採用
* 標準のオフィススイートをOpenOfficeからLibreOfficeに変更
* 標準の音楽管理ツールをRhythmboxからBansheeに変更
* グローバルメニューの導入
* 新デザインのスクロールバーの導入
* X.orgサーバ 1.10及びMesa 7.10の利用
* Ubuntu One コントロールパネルの追加
* インストーラの改善
* Ubuntuソフトウェアセンターにレート及びレビューの追加

PEAR:Net_Useragent_Mobile


--- 広告 ---
--- 広告 ---

PEAR:Net_Useragent_MobileだけではiPhoneやAndroidに対応できないので、googleで検索してみました。

携帯サイトプランスタート。iPhoneと Androidを PHPで振り分ける方法を参考にさせていただきました。感謝。

それぞれのAgent情報を調べれば分かります。まずは、iPhoneの場合(私の場合は iPod touchですが・・)

    Mozilla/5.0 (iPod; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 

つい先日配布された iPhone OS 3.0をインストールした状態でのエージェント情報は上記のようになっています。Safariとか AppleWebKitというキーワードもありますが、「iPhone」というそのもののキーワードがあるので、これが使えます。

続いて Androidの場合、こちらは先日の Google Developer Dayでいただいた端末を利用して見ました。

    Mozilla/5.0 (Linux; U; Android 1.5; en-us; GDDJ-09 Build/CDB56) AppleWebKit/528.5+ (KHTML, like Build/CDB56) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20. 

こちらにも、「Android」というキーワードが入っていますので、これで判別が出来ます。

ということで、例えばここではざっくりと「PCの場合、ケータイの場合、iPhoneの場合、Androidの場合」で振り分けをしてみましょう。

    // PEARをインストールした後、読み込みます
    require_once 'Net/UserAgent/Mobile.php';
    $agent = Net_UserAgent_Mobile::singleton();

    // iPhone
    if (strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') !== false) {
    	// iPhoneの場合
    } else if (strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false) {
    	// Androidの場合
    } else if ($agent->isNonMobile()) {
           // PCの場合
    } else {
          // モバイルの場合
    }

モバイルの場合は、さらに細かくキャリアなどで分けていくと良いでしょう。詳しくは、PEAR:Net_UserAgent_Mobileのドキュメントをご参照くださいませ。

pogoplugfsを使う


--- 広告 ---
--- 広告 ---

日経Linux5月号にpogoplugの記事が掲載されていたので購入。

pogoplugfsを使ってLinuxのドライブとしてマウントできると書いてあったので、ubuntuとCentOSでためしてみました。
ubuntuはすんなりとpogoplugのドライブをマウントできましたが、CentOSでlibfuse.so.2がインストールされておらず起動できませんでした。

yum install sshfs を実効してlibfuse.so.2をCentOSにインストール。

CentOSでもpogoplugfsを使えるようになりました。

夜中にcrontabとスクリプトでファイルを定期的に自動uploadしたいので、Expectというツールを使ってスクリプトを作成します。

expect
指定された文字列(「”」に囲まれた文字)と標準入力のデータとを正規表現で比較し、一致するまで以降の命令を実行しません。
set timeout
設定した秒数の間、標準入力から応答がないとexpectは、終了します。上記例だと、5秒でタイムアウトする設定になります。「-1」を設定すると、タイムアウトしない設定になります。
send
指定された文字列(「”」に囲まれた文字)を先に実行したコマンドのジョブに送信します。つまり、「hogehoge38\n」とパスフレーズを入力したことになります。文字列最後の「\n」は、改行(Enterを押下)を意味します。
interact
実行ジョブの標準入出力をキーボードと画面にします。これで、自動実行を終了し、端末からsshでログインしたのと同じ状態になります。

参考URL:
expectコマンドの使い方
システム管理者必携?、悪魔のツール「Expect」
expectコマンドで、scpを自動化するためのスクリプト

初心者のプログラムメモさんのページより引用
------------------------------------------------------------------------
#!/bin/bash

HOST=対象ホスト名(IPアドレス)
USER=ログインユーザ
PASS=パスワード
TARGET_DIR=バックアップディレクトリ(ファイル)
BACKUP_DIR=保存先ディレクトリ

expect -c "
set timeout 60 ←タイムアウトの時間は環境にあわせて設定してください
spawn scp -Cpqr ${USER}@${HOST}:${TARGET_DIR} ${BACKUP_DIR}
expect {
\" Are you sure you want to continue connecting (yes/no)? \" {
send \"yse\r\"
expect \"password:\"
send \"${PASS}\r\"
} \"password:\" {
send \"${PASS}\r\"
}
}
interact
"
------------------------------------------------------------------------

expect -cオプション:ダブルクォートで囲った複数行を自動対話処理する
spawn コマンド : コマンドを実行する
expect : 対話の受信
send : 対話の送信
interact : 対話の終了
"\r"に関しては、ttp://kansai.anesth.or.jp/gijutu/expect/doc-expect.php#answerを参考にさせていただきました。


追記:この方法は、あくまでLAN内を想定しています。

pogoplug 簡単インストール?


--- 広告 ---
--- 広告 ---

予定では60秒で簡単にpogoplugを使えるはずだったけど、ちょっとバタついてしまいました。

インターネットで検索していたら、pogoplugに接続するUSB-HDDはntfsフォーマットしておいたほうが良いという事だったので、windows 7にUSB-HDDをつないでフォーマット。(その前にlinuxマシンに繋いでext3フォーマットしたけど上手く認識しなかったため)

外付けHDDのフォーマットをext3にしてもntfsにしても上手く認識しないので、別の外付けHDDをpogoplugに繋いでみた。

それでも、認識が安定しない....。

googleで検索しなおして、dhcpの設定が必要と判明したので、自宅サーバにdhcpをインストールしたら、あっさりpogoplugが外付けHDDを認識しました。

わかってしまえば、「そんなこと」といういつもの事でございました。

とりあえず、音楽をiPhone4で聞けるようファイルをpogoplugにアップしていますが、もっと有効利用ができるはず。

pogoplugをどう使いこなすか....。楽しみです。

1 2 3 12
目 次
最近の投稿
--- 広告 ---
--- 広告 ---
お問い合わせ