どのようにしてデータベースの実際の地理的位置を知ることができますか?

SQL ServerデータベースがC#コードを介して地理的に配置されている場所を取得するように任されています。物理的およびサイバーの害からデータベースを頻繁に再配置するために時々変更される可能性があるからです。私の上司のこれが可能なのか別の夢は、事前に感謝していますか?

9
私は時期尚早に回答したかもしれませんが、AzureがあなたのdBをホストするために使用しているかどうかを明確にすることができますか?それとも別のクラウドプロバイダーですか?
追加された 著者 Jeremy Thompson,
私はデータベースがなぜそんなに頻繁に移動するのだろうかと疑問に思っていますか?あなたが何か違法な行為をしていない限り、サーバーを安全なサーバールームに置くほうがはるかに安全です。あなたがDNSアドレスや他の同様の公開されているコールでサーバを特定すると、サイバー傷害から保護されません。それよりも、サーバーの時間と場所を再配置する実際の行為は、サーバーを信頼性と安全性の高い場所に置くよりもはるかに弱い点です。
追加された 著者 Seph,
私は尋ねる必要があります - なぜですか?データベースの物理的な場所が重要なのはなぜですか?
追加された 著者 jro,
それは良い理由のためではない、違法ではない;)
追加された 著者 Allan Chua,
おそらくこれがあなたが探しているものです: stackoverflow.com/質問/ 716748/c-reverse-ip-domain-check
追加された 著者 John Donn,

8 答え

1 - このような方法で購入するこれはUPSのGPS受信機です。

2 - サーバーマシンに接続します。

3 - GPSソフトウェアを呼び出し、現在の位置を返すバッチまたはシェルスクリプトを作成します。

4 - xp_cmdshell を使用してこのスクリプトを呼び出し、SQL Serverクエリを使用して現在の位置を返します。

7
追加された
- しかし、もし彼がそのUSBデバイスを雲に入れないと
追加された 著者 Jeremy Thompson,
+1そのデバイスはクールですが、CLS Sprocの私の提案のようにxp_cmdshellは空の上を飛行しません(しかし、OPはその紺碧を解明していません)
追加された 著者 Jeremy Thompson,
+1、それはあなたが携帯電話を購入する節約:)
追加された 著者 Moo-Juice,
私はこのアイデアバディが好きです;)
追加された 著者 Allan Chua,
@JeremyThompson - ええ、雲かどうかは分かりません。明らかにこれが実際には機能しない場合は、
追加された 著者 JNK,

iPhone/Androidの携帯電話を購入し、データベースを持っているマシンの上部にそれを売ります。 GPS APIを見て、携帯電話がHTTPS経由で何らかの種類のJSON/SOAP API(セキュリティ上の目的で)を使用して接続されているデータベースに投稿するためのクイックアプリを作成します。

C#を使用している場所からGPS情報にアクセスできます。

編集

Working with the GPS on Mono/iPhone: http://drdobbs.com/mobility/222600599

Example code, GPS on Mono/Android: https://github.com/gshackles/Sample-Projects/blob/master/MonoDroid/MonoDroidSamples/MonoDroidSamples/DemoActivities/LocationDemo/LocationActivity.cs

6
追加された
@DavidePiras私はそれが完全に実現可能だが、それは深刻な答えではないことに気付いたはずである。しかし、なぜそれほど多くのハードウェアを購入するのですか?それは単なるAndroidの携帯電話です...あなたはMono C#で仮想的にアプリケーションを書くことができます。データベースサーバーはすでに存在します。
追加された 著者 Moo-Juice,
@gbnあなたは私にそのGPSの使い方を教えてもらえますか?
追加された 著者 Allan Chua,
@ Moo-Juice私はこれが良いアイデアだと思っていますが、プレーンテキストとコードを単純に使用すると、ここには何かがありますか?
追加された 著者 Allan Chua,
しかし、私は彼の現在の場所のデータベースからの応答を作るためにこれを使うことができますか?
追加された 著者 Allan Chua,
頬には舌がありますが、これは考慮する価値があります。あなたは場所が欲しいですか? GPSを使用します。 IPは信頼できません。
追加された 著者 gbn,
これは正確ですが、データセンターが十分に分離されていて電話に信号がない場合はどうなりますか?また、購入するハードウェアをたくさん必要とする...
追加された 著者 Davide Piras,

最も簡単な解決策は、DNSルックアップを行い、次にCodyが提案したようにIPロケーションサービスを使用することです。これを試して:

var foo = Dns.GetHostEntry("database.windows.net");

IPアドレスを取得したら、 http://www.iplocationfinderのようなものをロードする必要があります。 co.jp /65.55.23.107 にHttpWebRequestを使用してください。 HttpWebRequestへの応答が得られたら、代わりに必要な場合には、正規表現を使用してロケーション名、または緯度と経度を解析できます。

6
追加された

あなたは会社内で一晩中移動したり、クラウドデータベースをセットアップするためにこれほど多くのサーバーを持っていますか? IPアドレスはおそらく基本的に不正確です。何も出発点ではありません。

4
追加された
私はあなたに良いアドバイス+1これを取るよあなたのバディ
追加された 著者 Allan Chua,

Davide Pirasが言及したように、このサイトを例として使用することができます: http://ip-lookup.net/ あなたのIPアドレスはDBサーバーで、通常のExpresionや http://htmlagilitypack.codeplexを使用してOutputを取得できます。 co.jp/

あなたがDBサーバーのIPアドレスを取得できる場合にのみ機能するBu。接続文字列のIPが必要なので、問題ではないはずです。

WebBrowserコントロールを使用するには、 webbrowser1.navigate( "http://ip-lookup.net/"); より:

HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");
            foreach (HtmlElement el in elc)
            {
                if (el.GetAttribute("type").Equals("text") && el.GetAttribute("name").Equals("ip"))
                {
                    el.InnerText = "Server IP";
                }
            }

次 :

HtmlElement form = webBrowser1.Document.GetElementById("form_single_IP");
            if (form != null)
                form.InvokeMember("submit");
             //Submit the form

and try to filter the output because im not very good using Regex .You can capture the Output by using webbrowser1.DocumentText;

2
追加された
@AllanChua私の質問を更新する
追加された 著者 Burimi,
@AllanChuaデータベースサーバーIPアドレスを取得する必要はありません。このタイプのWebサイト(サービス)を使用すると、DataBaseサーバーの地理的な場所を見つけることができます(それほど正確ではありませんが、動作します)
追加された 著者 Burimi,
これは、紺碧のクライアントjd39urj4j4.database.windows.netのサンプル接続文字列です。
追加された 著者 Allan Chua,
エイリアスを持っているデータベースへの接続文字列があれば、それをどうやって行うのか教えていただけますか?
追加された 著者 Allan Chua,
しかし、これは私のためのものですか?データベースが正しく配置されているサーバーではありませんか?
追加された 著者 Allan Chua,

データベースを使って場所を教えてみませんか?私が何を意味するかを明確にするために:

Using SQL CLR Stored Procedure To Track IP Address - but make the CLR sproc return the ipaddress of the server its hosted on.

I saw the azure connection string you mentioned to Cody and thought these would be a handy links: http://blogs.msdn.com/b/windowsazure/archive/2011/07/06/windows-azure-deployments-and-the-virtual-ip-address.aspx

デプロイされたアプリからAzureパブリックIPアドレスを取得する

1
追加された

タイムゾーンを決定することはおそらくSQL Serverから行うことができますが、これはユーザーの説明に基づいて十分です。このクエリを使用して、サーバーが配置されているタイムゾーンのGMTオフセットを取得できます。

SELECT DATEDIFF(hh, GETUTCDATE(), GETDATE()) AS ServerTimeZone

この結果から、タイムゾーンの省略形、つまり ESTCST などを返すロジックを簡単に追加することができます。 。

1
追加された
ええと..これはまた、ガジェットによって返されたGPSの位置が正解であるかどうかのチェックに役立ちます:)
追加された 著者 Allan Chua,

誰かがすでに物理的にサーバーを移動している場合、対応する場所をDBに書き込むスクリプトを書いてみませんか?マシンが起動すると、そのツールが自動的に起動し、「ムーバー」に場所が選択されます。

0
追加された