DelphiでWebサービス作成

このQ&Aのポイント
  • DelphiXE4を使用してWEBサービスを作成しようと考えています。
  • サーバ側をフォームがあるWebサービス1台、クライアント側は複数台の同時アクセス(マルチスレッド?)を実現したいです。
  • インターフェースを使用して、処理するときにアクセス元のIPアドレスを知りたいのですが、方法が見つかりません。
回答を見る
  • ベストアンサー

DelphiでWebサービス作成

DelphiXE4を使用してWEBサービスを作成しようと考えています。 今までDCOM通信をしていたものをWebサービスで作成しようと考えています。 サーバ側をフォームがあるWebサービス1台、クライアント側は複数台の同時アクセス(マルチスレッド?)を実現したいです。 インターフェースを使用して、処理するときにアクセス元のIPアドレスを知りたいのですが、方法が見つかりません。 コネクション時はフォーム側のConnectイベント、アクセスが発生した時はWebDataModuleを通るため、そこでIPアドレスを取得できる方法は見つかったのですが、実処理側ではなさそうです。 もし無いとすると、グローバル変数などに格納しないといけなくなりそうですが、同時アクセスをしたいため、その方法は避けたいです。 Webサービスを今まで使用したことがないため、いまいち仕組みがわかっていないため、ご存じの方教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.1

DelphiXE4もDCOM通信もよく知りませんが、アクセス元のIPアドレスを何に使用するつもりなんでしょうか? もしWebサービスを提供しているサーバーからクライアントに対してアクセスするのに使用したいとかだと仕組みから考え直された方がよろしいかと思います。

tsukkey
質問者

補足

ログイン処理があり、そこで接続元のIPアドレスをDBを検索して無ければログインNGにします あれば必要な情報を生成しておき、内部で保持します。 さらに別関数にアクセスされた時にIPアドレスからログイン状態を見て、ログインしていなかったら特定の値を返します。 ログインしていたら、生成した情報をもとに処理をします。 簡単にですが、上記のような処理のためにIPで判断しようとしています。 接続元が意識することなく、Webサービス側でセッションなど判断できたらその方法でも考えています。

関連するQ&A

  • WinNTのWebサービスがMacから見られない

    社内で運用しているシステムでの話なので、細かく書けないのですが、思い当たることなどございましたらご回答いただければと思います。 社内LANでMacからWinのWebサービスへアクセスする運用を始めたいと思っております。Win機(及びWebサービス)は2台あり、片方(OS Windows2000サーバ)は問題なくアクセス、動作できるのですが、もう一方(OS WindowsNT サーバ)がうまくいきません。 IEで接続するのですが、「サーバが見つかりません」というアラートが出て、そのWebサービスのindexページも表示されません。 うまくいくほう(2000)を○、いかないほう(NT)を×とすると、 Macから○、×へは、セレクタ→アップルシェアの接続一覧には両方とも出ますし、共有ファイルも使用できています。 が、サーバへIPアドレスを直打ちして接続しようとすると、○は接続できるのに対し、×は接続できません。 両方ともIPアドレスは固定で1番違い。○も×もインターネットは見ることが出来ます。。 情報足りなくてすみません。検索してもうまく見つけられないので探すきっかけだけでも頂ければと思います。

    • ベストアンサー
    • Mac
  • ウェブサービスによるoracleへの同時接続

    こんにちは vb2005で作成したアプリケーションソフトをwebサービス(asp.net)を使用してoracle10gに接続してデータの取得、更新処理を するシステムを開発しています。 現在、複数の端末から同時にファイル更新を行うと、下記のようなメッセージが出力され大変困っています。 ・この操作に対して接続がオープンされている必要があります。 ・サーバは要求を処理できませんでした。-->オブジェクト参照がオブジェクトインスタンスに設定されていません ・リモートサーバーに接続できません。 複数で同時アクセスするような場合、何か他の設定が足りないのでしょうか。 以上、宜しくお願いします。

  • WEBサービス(ASP.NET)+VB.NETでのポート番号

    VB.NETで作ったアプリからWEBサービスを通して処理をさせているのですが WEBサービスにアクセスすときに使用しているポートの 記述方法が解らなくて困っています。 自分で調べてみて解っている事は以下の事だけです・・・ アプリが使用しているポートを見てみると1324とか1357とか 毎回別のポートを使用してアクセスしているみたいです ファイルを検索してみてもポートをしているような記述は無い様ですが まさか使用するポートを指定できないという事は無いと思います。 環境はVisual Studio 2005 Pro のWEBサービスとVBを使用しています 何かご存知の方居ましたらご教授よろしくお願いします。

  • webサーバーについて

    自宅でwebサーバーをたてたのですが、うちはルーターにサーバマシンを つないでいるので、ルータのグローバルIPアドレスに対するドメインを 無料のところで取得しました。 そこで、外部(WAN側)から自宅のwebサーバーには アドレス欄にドメイン名を入れるだけで、アクセスできるようにするために、ルータの設定で、静的IPマスカレード設定/NAT設定というところの「Webサーバを外部に公開する (エントリ番号1を使用) 」という項目にチェックを入れて、宛先IPアドレスに サーバーマシンのローカルアドレスを記入しました。 これで大丈夫なはずだと思い、別のPCから ドメイン名でサーバマシンへのアクセスを試みたのですが、 ドメイン名をアドレス欄に入れると、ルータに接続されてしまいます。 グローバルIPアドレスでのアクセスを、サーバマシンに受け渡すような 設定は、上記の方法ではダメなのでしょうか? 使ってるルータはRV-230SEというやつで、Bフレッツです。 よろしくお願いします。

  • グローバルIP1個でWEBサーバー構築方法

    OKWaveで色々探してみて、同じ方法で設定を行ったのですが、どうにもうまくいかないので皆さんアドバイスをお願いします! グローバルIP1個でWEBサーバーを構築しようとしています。 ルーターはBUFFALOのWZR-HP-G302Hで、 ポート変換の設定でInternet側IPアドレス=エアステーションのInternet側IPアドレス プロトコル:TCP/UDP=HTTP LAN側IPアドレス=192.168.1.99(WEBサーバーのプライベートIPアドレス) としていますが、外部からアクセス不可となってしまいます。 ちなみにWEBサーバーはWindows2008R2サーバー、IIS7.0を動作させています。

  • Webアクセスログの抽出

    Webアクセスログの解析をしており、一定期間にあるファイルにアクセスしたユーザ数を調べたいのですが、同一ファイルでのIPアドレスが重複しているものを一つにしたいと思います。 EXELでとりこめないくらいの行数があるので、grepなどで 処理すればよいと思いますが、その方法がわかりません。 どなたかご教示をおねがいできますでしょうか。

  • webサーバでクライアントを特定するには

    visual studio 2010 のC#でWebアプりを作成しています。 クライアントは5台と決まっており、クライアントのIPアドレスも決まっています。 サーバにアクセスしてきたクライアントを5台の内どれかを特定する必要があり System.Net.Dns.GetHostEntry(System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]).AddressList[i].ToString(); 上記の様にしました。 するとサーバと同じネットワークアドレスのクライアントのIPアドレスは取得できましたが、 違うネットワークアドレスのクライアントのIPアドレスは取得できませんでした。 サーバにDNSをインストールすれば良いのでしょうか? ただ単にクライアントを特定するだけでよいので、DNSのインストールは敷居が高いので 違う方法を探しています。 簡易版のDNSとかありますか? ご存じの方教えてください。

    • 締切済み
    • CSS
  • Webサイトのアクセス管理方法

    マンションの中の人だけが見られるWebサイトを作成したいと思います。が、パスワードだとどうしても流出の可能性がありますし、面倒なので見なくなってしまいます。 例えば無線LANやイーサネットアダプタのMACアドレスやPCが使用する回線のIPアドレスなどを登録しておいて、そういうものからだけのアクセスを受け付けるようなサイトを作る方法はありますか? あるいは他の方法でもいいのでパスワードではなくハードウェアをキーとしてアクセスを許可するような方法はありますか?

  • IPを固定にするとWebが見れない

    お世話になります。 今、ISP契約をしたBフレッツにBuffaloのBBルータ(WHR-HP-G54)を接続し、市販のノートPCに対してDHCPによるIPアドレスの自動割り当てを受けて、WindowsノートPCからWebの閲覧をしていました。PCの接続はこの1台のみです。 諸般の事情でDHCPから固定IPアドレスの自動割り当てに切り替える必要があり、その設定を行ったのですがWebの閲覧ができなくなりました。BBルータにはアクセスできます。再度DHCPに切り替えると同じようにWebの閲覧は可能です。 なにが原因か突き止めようとしたのですが、以下の状態でクリンチしました。 他に確認すべきことがありましたらご教示いただけないでしょうか? (1)DHCPの設定をON。IPアドレスは完全に自動割り当て。  →ノートPCにてWeb閲覧可。 (2)DHCPの設定をON。IPアドレスは以下のように設定。  ・BBルータLAN側:192.168.0.1  ・DHCP払い出しIP:192.168.0.100より1個  ・PC側:インターネットプロトコル(TCP/IP)は「IPアドレスは自動的に取得する」  →ノートPCにてWeb閲覧可。  (ipconfig /allにて上記のIPあどれすの払い出しを受けたことを確認) (3)DHCPの設定をOFF。IPアドレスは以下のように設定。  ・BBルータLAN側:192.168.0.1  ・PC側:インターネットプロトコル(TCP/IP)は「次のIPアドレスを使う」   IPアドレス:192.168.0.100   サブネットマスク:255.255.255.0   デフォルトゲートウェイ:192.168.0.1  →ノートPCにてWeb閲覧できない。BBルータのみアクセス可 以上です。よろしくお願いします。

  • LAN内のWebページにグローバルIPでアクセス

    NTT-ME BA5000SOHOを使っています。回線はYBBです。 LAN内のPCがLAN内にあるWebサーバーをグローバルIPでアクセスするとルータのローカルIPアドレスにアクセスしてしまい、ポートフォワーディング先のローカルIPアドレスにアクセス出来ません。WAN側からはアクセスできます。 NTT-MEのサポートによるとこれはBA5000SOHOの仕様だそうです。 情報によるとLINKSYS/BEFSR11はアクセス可能とのこと。 WebページをテストするのにWAN側(知り合いに頼む、またはダイヤルアップ)からしか出来ず困っています。 対処方法、またはLINKSYS/BEFSR11のようにアクセス可能なルータの機種名を教えて下さい。 よろしくお願いします。