• 締切済み

ネットワークの指定は?

サーバとクライアントと言う関係で、phpでcopy関数を 使おうとしています。 ファイル指定で、サーバのIPとクライアントのIPを 指定したいのですが、上手くいきません。 どなたかのアドバイスが頂ければと思います。 ちなみに、したいことの記述としては、 copy("\\192.168.0.1\tmp\aa.txt", "\\192.168.0.2\tmp\bb.txt");  サーバのaa.txt をクライアントにbb.txtとしてコピー。 環境  サーバ:Windows2K     :WindowsApache     :WindowsPHP  クライアント:Windows2K

  • PHP
  • 回答数3
  • ありがとう数1

みんなの回答

noname#202916
noname#202916
回答No.3

権限でアクセスできないとのことですが、 ちょっとやったことがないので詳しくはわかりませんが apacheにてphpを実行する権限(匿名アカウント?)と 同じアカウントを、コピー先のコンピュータと同じに すればうまくいくと思います。phpではありませんが 昔aspで似たようなことをしました。IISではIUSER_コンピュータ名 という匿名アカウントで実行されるため、コピー先にも 同じアカウントを作った記憶があります。WinApache? これに関しても何か匿名で実行をかけるアカウントがあるはずです。同じIUSR_XXXXかな?

  • togino
  • ベストアンサー率75% (97/129)
回答No.2

# No.1 で間抜けな回答をした togino です。 すみません・・・ copy("\\\\192.168.0.1\\tmp\\aa.txt", "\\\\192.168.0.2\\tmp\\bb.txt"); として、動きませんか? いま PHP for Win32 で試したところ、ファイルを コピーしてくれました。 認証がいる場合どうなるのか分かりませんが・・・ あと $obj_file = new COM("Scripting.FileSystemObject"); $obj_file->CopyFile("\\\\192.168.0.1\\tmp\\aa.txt", "\\\\192.168.0.2\\tmp\\bb.txt"); $obj_file->Release(); $obj_file = null; こんなんとか w32api_register_function("kernel32.dll", "CopyFile", "long"); CopyFile("\\\\192.168.0.1\\tmp\\aa.txt", "\\\\192.168.0.2\\tmp\\bb.txt", 0); こんなのとかまで(↑PHP 4.2.x only らしい) とかやってみました(苦笑)

Neko-chan
質問者

お礼

ありがとうございます。 '\\\\'でしたか・・・ ご指摘どおり、次は権限で引っかかりました(汗)。 何かそのあたりでお解りの場合、ご教授頂けたらと思います。 宜しくお願いします。

  • togino
  • ベストアンサー率75% (97/129)
回答No.1

PHP はクライアント側のローカルリソースには セキュリティーの問題で全くアクセスできない ようになっています。 # そもそもクライアントは UNIX かもしれないし # サーバが関与する所ではないですよね PHP側のサーバが「君のパソコンの C:\Windows\ に このファイルを保存しました」なんてされたら 怖いですよね。

関連するQ&A

  • コピーが・・・

    先日質問をして、回答を頂きありがとうございました。 今回も、是非お教えください。  PHPでcopy関数により  ・クライアントのファイルをサーバへ  ・サーバのファイルをクライアントへ  と言うことをしようとしています。   例:copy("\\\\192.168.xx.0\\sv\\file1.txt", "\\\\192.168.xx.2\\cl\\file1.txt");  でも、クライアント側へのファイル権限がありコピーできません。  どの様にしたら権限の変更等が可能なのでしょうか?  chmodはWinでの使用ができないので・・・。  環境  サーバ:Win2000, WinApache, PHP  クライアント:Win2000  閉じたLANでの運用(インターネット接続なし) 不十分な説明ですが、おわかりの方がおりましたらお願いします。 

    • 締切済み
    • PHP
  • ネットワークの指定

    よろしくお願いします。 1つのPCで複数のクライアントソフトを起動しようとしたら、 ログイン出来なかったので、開発元に問い合わせたところ、 ログインするときに、既にそのグローバルIPでログインしていると 他のユーザーIDであっても、ログインが拒否されるとの事です。 ユーザーIDを複数持っている為、どうしたらよいか尋ねたところ、 PCをユーザーID分用意して、プロバイダも別にしてくださいとの事でした。 つっこんで聞いてみたところ、グローバルIPが別であれば同一PCでも ログインが出来るとの事でしたので調べています。 ネットワークカードを2枚挿して、2つのプロバイダと契約をして、 それぞれのLANポートに、それぞれのプロバイダにつなげれば、 1つのPCでログインできるのではないかと思って調べていました。 調べを進めていくと、ネットワークカードに複数の固定IPアドレスを 指定することが出来るという事も知り、更にレンタルサーバーで 固定IPアドレスを複数追加できるということも知りました。 レンタルサーバーを借りて、複数の固定IPを追加して 1つのレンタルサーバーから複数ログイン出来ることが理想です。 そうすれば、そのクライアントソフトは、1つのPCであっても サーバー側から見れば、複数IPアドレスとなるので、問題ないです。 C#で簡単なプログラムを組むことが出来るので、調べているところですが どうも、知識が少ないせいで、ヒントになるようなコードすら見つかりません。 やりたいことは、レンタルサーバーを借りて、例えば4つの固定IP(A、B、C、D)を追加します。 C#のコード的には IPアドレスAの指定(変更) クライアントの起動 IPアドレスBの指定(変更) クライアントの起動 IPアドレスCの指定(変更) クライアントの起動 IPアドレスDの指定(変更) クライアントの起動 となりそうな感じです。(そもそも違うかもしれません・・・汗) 手動だと面倒なので、C#で組みたいと思っています。 この「IPアドレスの指定(変更)」をご教授願いたいです。 よろしくお願いします。

  • ntpでrestrictのネットワーク指定が効かない

    Red Hat Enterprise Linux ES v.3にて RPMに入っているntp-4.1.2-4を使用して、この サーバを内部のNTPサーバとしています。 /etc/ntp.confの中で 許可するネットワーク指定で restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap と記述しているのですが、このネットワークアドレスの NTPクライアントからなぜか時刻を合わす事ができませんでした。(クライアントもntpdを使用しています) もしやと思い、restrict 192.168.1.2 notrust nomodify notrap とIPアドレス指定をしたら、NTPクライアントから時刻 合わせを行う事ができました。 留意事項  ・このサーバと外部の公共NTPサーバの時刻合わせは   正常に完了している。  ・/etc/ntp.confの変更後、ntpdをrestartさせて   いますが、NTPサーバの時刻が十分安定してから   NTPクライアントは合わせに行っています。  ・NTPサーバとNTPクライアントの時刻は大きくずれて   いると合わせないと聞いた事があるので、実行前に   1秒単位の誤差しかないよう、dateコマンドで合わ   せました。 ネットワーク指定が効かないと、NTPクライアントの数 分記述を入れなければならないので避けたいのです。 原因と回避方法を教えてください。

  • フォルダ内のファイルのコピーについて

    同フォルダ内にAフォルダにaa,bb,ccというテキストファイルがあります。これをex.txtファイルにaa,bb,ccファイルの内容をコピーしたいのですが、うまくいきません。 最初はuse File::Copyでやろうとしましたが、これはディレクトリの中のファイルの指定がわからず、断念。 次にwhile文でやってみましたが、これも引数の指定がわからない状態です。 もしよければお知恵を貸してください。

    • ベストアンサー
    • Perl
  • win2k serverでログインせずにネットワークドライブへ接続したい

    あるプログラムをphpで作成しています。 そのプログラムはあることをするとcopy関数を使って別サーバに接続されているネットワークドライブ(Z:\)からネットワークドライブ(Y:\)へファイルのコピーを行います。 しかし、そのプログラムが入っているwin2k serverでログインせずに、クライアントからそのプログラムにアクセスして実行すると、エラーをはいてコピーを実行できません。 ちなみに、サーバでログオンしてからクライアントで実行するとうまくいきます。 サーバはセキュリティ上の問題で、普段はログオンしない状態です。 また、そのサーバはドメインに参加しており、ネットワークドライブに接続するにはユーザ名、パスワードは聞かれません。 サービスなどを使ってログインする前にプログラムがネットワークドライブへ接続可能にする方法とかありませんか? ご回答よろしくお願いします。

  • ネットワークプリンタのIPアドレス変更

    社内のIPアドレスを変更することになり、その影響で各クライアントに設定されているプリンタのIPアドレスも変更しなくてはいけません。 一台ずつ設定して回るのは、難しいので、ログオンスクリプトで対応できないかと考えています。 どのように記述すれば行えるでしょうか? また、ほかによい方法があれば教えていただけるでしょうか? 環境: Server:windows server 2003 r2,Client:windows 7とxp混在。 (Active Directoryを運用しています) よろしくお願いいたします

  • 多数のサブディレクトリ内のファイルを一括コピーする

    コマンドプロンプトについて初心者ですがよろしくお願いします。 多数のサブディレクトリとフォルダ名もバラバに異なる中から特定のファイル(.txt)のみを全てを一括しコピーしたいのですがバッチファイルを使用した方法を教えてください。 (コピー元 C:)             (コピー先F:) \AA ∟\aa ∟aa.txt                aa.txt \BB ∟\bb ∟bb.txt        ⇒       bb.txt \CC ∟\cc   ∟ cc.txt               cc.txt

  • 上書きコピーについて

    Windows Vista Ultimateを使用しています。 同名のフォルダごとコピーする場合について質問なんですが、 たとえば新フォルダ「abc」を旧フォルダ「abc」に上書きする場合、  新フォルダの中身:aa.txtとbb.txt  旧フォルダの中身:aa.txtとbb.txtとcc.txt この場合、aa.txtとbb.txtが上書きコピーされますが、 この時、旧フォルダに元々あったcc.txtが残ります。 フォルダごとコピーした時に旧フォルダに元々あったcc.txtを残さない設定にできますか? コピー後にaa,txtとbb.txtだけが残るようにしたいのです。

  • テキストファイルに引数を設定する方法

    宜しくお願いします。 【a.txt】を呼び出す【a.bat】というファイルを作りました。 【a.txt】には、FTP伝送でAAサーバからBBサーバへ ファイルを伝送する以下のコードが書かれています。 -a.txt------------------------------------- open *.*.*.* ←BBサーバのIPアドレス aa aaa cd C:\test binary lcd C:\test put zz.txt yy.txt bye -------------------------------------- 【a.bat】は以下のように考えています。 -a.bat------------------------------------- ftp -s:C:\a.txt  ←【a.txt】はCドライブの直下に置いています -------------------------------------- この【a.txt】の中に書かれている【zz.txt】及び【yy.txt】を 引数に設定し、それをbatで実行することは出来ないでしょうか。 OSはWindows2000を使用しています。 宜しくお願いします。

  • コマンドプロンプトのコピー関数について

    コマンドプロンプトのcopyのファイル名を記述する部分にファイルのフルパスを使用してみたのですが、「指定されたファイルが見つかりません」となってしまいますが、copyではフルパスは使用できないのでしょうか? エラーになるのは以下のように記述したコマンドです。(a.txtをb.txtにコピー) copy C:\Documents and Settings\a.txt C:\Documents and Settings\b.txt よろしくお願いします。

専門家に質問してみよう