Як я можу дізнатись фактичне географічне розташування бази даних?

Я доручив, щоб отримати місце, де наша база даних SQL Server географічно знаходиться за допомогою C# код, оскільки він може змінюватися час до часу з-за частого переміщення нашої бази даних, щоб захистити його від фізичної та кібер шкоди. Це можливо чи інша мрія мого боса завдяки заздалегідь.

9
Я міг би відповів передчасно, але не могли б ви уточнити, якщо його Azure ви використовуєте для розміщення дБ? або це ще один постачальник хмар?
додано Автор Jeremy Thompson, джерело
Мені цікаво, чому база даних переміщується так часто? ... якщо ви робите щось незаконне ... це буде набагато безпечніше, просто поставити сервер у безпечну кімнату сервера ... тому що ви, ймовірно, збираєтеся не захищайте його від нападу кібер, якщо в кінцевому підсумку виявлення сервера за допомогою адреси DNS або іншого подібного публічного дзвінка. Більше того, фактичний акт переміщення вашого сервера знову і знову, ймовірно, буде набагато слабким місцем, ніж ваш сервер у надійному та безпечному місці.
додано Автор Seph, джерело
Я повинен запитати - чому? Чому важливе місце розташування бази даних?
додано Автор jro, джерело
це не є незаконним, це справа;)
додано Автор Allan Chua, джерело
можливо, це те, що ви шукаєте: stackoverflow.com/ питання/716748/c-reverse-ip-domain-check
додано Автор John Donn, джерело

8 Відповіді

1 - Купуйте somethihng, як це. Це приймач 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-телефон і завантажте його на вершину апарата, на якому є на ньому база даних. Напишіть швидкий додаток, щоб він подивився на API GPS і опублікував його позицію в базі даних, в якій телефон підключений, використовуючи який-небудь API JSON/SOAP через HTTPS (для цілей безпеки).

Потім ви можете отримати доступ до інформації GPS, звідки ви використовуєте C #.

Редагувати

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-Sіc Я бачу, що це гарна ідея, але чи є тут будь-які шляхи простий використання простого тексту та коду?
додано Автор Allan Chua, джерело
Але чи можу я використовувати це, щоб зробити відповідь із бази даних свого поточного місцезнаходження?
додано Автор Allan Chua, джерело
Хоча язик в області щоки, це варто розглянути. Ви хочете розташування? Використовуйте GPS. IP не надійний.
додано Автор gbn, джерело
Ну, це може бути більш точним, але якщо центр обробки даних буде добре ізольований, а телефони не матимуть сигналу? також вимагає достатньо обладнання для покупки ...
додано Автор Davide Piras, джерело

Найпростішим рішенням є пошук DNS, а потім використовуйте службу визначення IP-адреси, як запропонував Коді. Спробуйте це:

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

Після того, як ви отримали свою IP-адресу, вам потрібно завантажити щось на зразок http: //www.iplocationfinder. ru/65.55.23.107 , використовуючи HttpWebRequest, якщо ви не хочете платити за базу даних про IP-адреси. Після того, як ви отримаєте відповідь на HttpWebRequest, ви можете використовувати регулярний вираз для розбору назви місця або широти та довготи, якщо вам це потрібно.

6
додано

У вас є так багато серверів, які переміщуються протягом ночі у вашій компанії, чи це для налаштування hbd? IP-адреса, ймовірно, є базовою неточною, кращою, ніж нічим відправною точкою.

4
додано
Я візьму це як гарний відгук +1, який ви приятете
додано Автор Allan Chua, джерело

Як зазначив Давід Пірас, ви можете використовувати, наприклад, цей сайт: http://ip-lookup.net/ , щоб простежити IP-адреса ви є DB-сервером, і ви можете захопити вихідний файл, можливо, використовуючи Regular Expresion або http: //htmlagilitypack.codeplex. Ru/.

Bu, який працює, тільки якщо ви можете отримати вашу IP-адресу DB Server, що, я думаю, не повинно бути проблемою, оскільки вам потрібен IP для String підключення.

Для цього використовуйте WebBrowser Control, виконайте 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-адресу сервера баз даних і за допомогою цього веб-сайту (служб) ви можете знайти географічне розташування сервера бази даних (не настільки точні, але це працює)
додано Автор Burimi, джерело
Це рядок з'єднання з Azure клієнтами 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

Отримайте загальну IP-адресу Azure із розгорнутого додатка

1
додано

Визначення часового поясу - це, напевно, найкраще, що ви можете зробити з SQL Server, але цього може вистачити на основі вашого опису. Ви можете використовувати цей запит, щоб отримати зміщення GMT у часовому поясі, де розташований сервер.

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

З цього результату ви можете легко додати деяку логіку, щоб повернути абревіатуру часового поясу, тобто EST , CST тощо. Я знаю, що це не так багато, але, сподіваюсь, це допоможе .

1
додано
Так, це також допоможе перевірити, чи правильна позиція GPS повернулася гаджетами завдяки :)
додано Автор Allan Chua, джерело

Якщо хтось вже фізично переміщує сервер, чому б не писати якийсь скрипт, який записує відповідне місце до БД? Коли машина запускається, автоматично запустіть цей інструмент і утримуйте ручку, щоб вибрати місце.

0
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug