|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Всем привет! Возможно, этот вопрос больше по Delphi... В Delphi-приложении есть TIBDatabase. Через GUI его подключили к БД на локальном или удалённом ПК. Как в этом же приложении определить — локальный это ПК или удалённый? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 10:57 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Перебрать все локальные ip и сравнить их ip субд. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 10:59 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Как узнать IP СУБД: в строке может быть DNS-имя или ничего и путь, или ничего и алиас... Сложновато получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:06 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
wadmanПеребрать все локальные ip и сравнить их ip субд. А можно поподробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:22 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiв строке может быть DNS-имя или ничего и путь ох, ё. локальный коннект - нет никакого имени сервера. имя сервера в коннекте есть - это может быть или localhost (127.0.0.1) или имя. Если ip совпадает с ip компа, значит БД на этом же компе. что тут сложного? и "ip СУБД" совершенно не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:24 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Hello, Androidzombi! You wrote on 6 октября 2015 г. 11:25:38: Androidzombi> Как узнать IP СУБД: в строке может быть DNS-имя или ничего и путь, или ничего и алиас... Сложновато получается. без программиста тут не обойтись... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:25 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
kdvи "ip СУБД" совершенно не нужен. Стормозил. Но ip может быть не только 127. А имя компа может быть как полным, так и не полным. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:36 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
wadmanНо ip может быть не только 127 может. а еще на компе может быть несколько сетевых карт. и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:38 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
kdvwadmanНо ip может быть не только 127 может. а еще на компе может быть несколько сетевых карт. и т.д. С языка снял,у меня как раз тот случай :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:41 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Hello, Wadman! You wrote on 6 октября 2015 г. 11:39:08: Wadman> имя компа может быть как полным, так и не полным для GetHostByName() разницы никакой. получаешь ip и сравниваешь со своим ip. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:42 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
kdvимя сервера в коннекте есть kdv, "имя сервера" — это то, что до ':' и длиннее одной буквы? Или "имя сервера" — это то, что до первого ':' из двух? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 11:45 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombi, server:c:\dir\data.fdb server:/usr/db/data.fdb server/port:... есть еще вариант server:alias и server/port:alias вместо server может быть localhost или прямой ip-адрес. стыдно задавать вопрос, не зная форматов строки коннекта. p.s. есть способ определить "удаленность" сервера и без помощи всех этих проверок. Достаточно понять, есть вообще имя сервера в строке коннекта (с портом или без), или нет. Если есть, можно его убрать и попробовать коннект к "остатку строки". если коннект проходит - значит сервер локальный. Хотя, если клиентская часть несовместима с сервером по xnet по каким-либо причинам, то будет облом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:23 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
kdvстыдно задавать вопрос, не зная форматов строки коннекта Да, стыдно... Но я, в общем-то почти всё знал..., но вот это: server:/usr/db/data.fdb мне до сих пор не понятно. Спасибо большое за помощь! И киньте ссылочкой на доку по формату строки коннекта, пожалуйста) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:31 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiserver:/usr/db/data.fdb мне до сих пор не понятно. вы впервые видите линуксовые пути? Я еще забыл добавить, что направление слэшей / или \ может быть любым, даже вперемешку в одной строке. Сервер сам ставит их в нужном направлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:34 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiКак в этом же приложении определить — локальный это ПК или удалённый? Зачем? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:48 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
kdv, про линукс я слышал... но пока не требовалось. Значит, если есть 'fdb', то алиаса нету. Тогда "имя сервера" — отрезаю слева до первого двоеточия из 2-х. А, если нет 'fdb', то алиас есть. А "имя сервера" — отрезаю слева до первого двоеточия ИЗ ОДНОГО. Правильная логика? Ссылочку-то не выложите? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:53 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Hello, Androidzombi! You wrote on 6 октября 2015 г. 12:54:25: Androidzombi> Значит, если есть 'fdb', то алиаса нету.людей, которые не читают документацию, нужно убивать из рогатки! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:54 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovAndroidZombiКак в этом же приложении определить — локальный это ПК или удалённый? Зачем? Бизнес-логика требует. Если БД — удалённая, то доступен один набор функций. Если локальная, то другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:56 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiБизнес-логика требует. Если БД — удалённая, то доступен один набор функций. Если локальная, то другой. Ого Это у вас так права распределяются? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:59 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Gallemar, да, а что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:01 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiБизнес-логика требует. Если БД — удалённая, то доступен один набор функций. Если локальная, то другой. Тогда единственный работоспособный способ это проверять количество Y-valve, через которые прошёл вызов isc_datbase_info() с параметром isc_info_db_id. Если там три и более - БД удалённая. Любые другие способы легко обходятся. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:03 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombikdv, про линукс я слышал... но пока не требовалось. Значит, если есть 'fdb', то алиаса нету. Тогда "имя сервера" — отрезаю слева до первого двоеточия из 2-х. А, если нет 'fdb', то алиас есть. А "имя сервера" — отрезаю слева до первого двоеточия ИЗ ОДНОГО. Правильная логика? Ссылочку-то не выложите? хрень полная. Я тебе в алиасе могу .fdb без проблем прописать. И даже больше алиас может напоминать путь ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:06 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Симонов ДенисAndroidZombikdv, про линукс я слышал... но пока не требовалось. Значит, если есть 'fdb', то алиаса нету. Тогда "имя сервера" — отрезаю слева до первого двоеточия из 2-х. А, если нет 'fdb', то алиас есть. А "имя сервера" — отрезаю слева до первого двоеточия ИЗ ОДНОГО. Правильная логика? Ссылочку-то не выложите? хрень полная. Я тебе в алиасе могу .fdb без проблем прописать. И даже больше алиас может напоминать путь Вот и фиг-то!!! Ну... Тогда, как бы ты решил задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:12 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombi, Тебе ДС уже ответил - API. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:14 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiСимонов Дениспропущено... хрень полная. Я тебе в алиасе могу .fdb без проблем прописать. И даже больше алиас может напоминать путь Вот и фиг-то!!! Ну... Тогда, как бы ты решил задачу? Я так понимаю, пользователь локально - как демон, а удаленно - как в гостях? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:15 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
wadman, если так, то ещё ладно. А вот если хочется чтобы локальный прав имел меньше, то сразу в топку. Автору на заметку. Если пользователь входит через удалённый рабочий стол, то какие права у него должны быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:18 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
wadman, можно и так сказать, а какая разница? Таковы требования заказчика, фиг и с ними, и с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:20 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
kdvAndroidZombiв строке может быть DNS-имя или ничего и путь ох, ё. локальный коннект - нет никакого имени сервера. имя сервера в коннекте есть - это может быть или localhost (127.0.0.1) или имя. Если ip совпадает с ip компа, значит БД на этом же компе. Только не забудьте, что localhost -- это 127.0.0.* ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:22 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
DarkMasterТебе ДС уже ответил Определённая категория людей автоматически игнорирует ответы в которых не поняли ни слова. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:23 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
DarkMaster, чего — "API". Объясни, как ты отрежешь от строки коннекта "имя сервера"? А уж потом — "API". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:23 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDarkMasterТебе ДС уже ответил Определённая категория людей автоматически игнорирует ответы в которых не поняли ни слова. Уже убедился ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:25 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombi, Покажи мне сначала строку, которую ты резать собрался. А потом - welcome в профильный Delphi форум - там будем твою строку разбирать. P.S. Если программа одна, то видимо она где-то хранит настройки? Ну те же пути к БД к примеру. Вот и храни еще один ключик, который переключает режим "удаленный/локальный". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:28 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Симонов Денисwadman, если так, то ещё ладно. А вот если хочется чтобы локальный прав имел меньше, то сразу в топку. Автору на заметку. Если пользователь входит через удалённый рабочий стол, то какие права у него должны быть? Симонов Денис, права доступа, удалённый рабочий стол — это всё не важно в данной теме. Ты правильно заметил, что алиас может напоминать путь. Так как же понять есть алиас в строке коннекта или нет? И как из строки коннекта выделить "имя сервера"? Никто ещё не ответил=( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:32 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiТак как же понять есть алиас в строке коннекта или нет? И как из строки коннекта выделить "имя сервера"? Никак. Обломись. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:37 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombi, Код: sql 1. 2.
это поможет определится по каком протоколу происходит коннект. Но на твой вопрос не ответит ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:40 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDarkMasterТебе ДС уже ответил Определённая категория людей автоматически игнорирует ответы в которых не поняли ни слова. А что тут ответишь, кроме признания, что да, мол, не понял ни слова... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:41 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombi, Можно заглянуть в MON$ATTACHMENTS - там есть имя файла БД. И IP коннекта. Берешь JCL, вызываешь LocalIP:=jclSysInfo.GetIPAddress('localhost'); NetIP:=jclSysInfo.GetIPAddress(''); Потом сравниваешь их с IP из MON$ATTACHEMENTS. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:45 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiА что тут ответишь А ничего отвечать и не нужно. Нужно идти скачивать и изучать API Guide. Или рыть документацию и/или исходники используемых компонент чтобы узнать как получить названную информацию. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:48 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
DarkMasterAndroidZombi, Покажи мне сначала строку, которую ты резать собрался. А потом - welcome в профильный Delphi форум - там будем твою строку разбирать. P.S. Если программа одна, то видимо она где-то хранит настройки? Ну те же пути к БД к примеру. Вот и храни еще один ключик, который переключает режим "удаленный/локальный". Да есть в INI файле ключики "LocalDatabaseName" и "ServerDatabaseName". Только это никак не помогает решить задачу... Тогда в LocalDatabaseName надо запретить указывать "сетевой" путь, что сводится к исходной задаче — вырезать имя сервера... А строку зачем показывать?.. Она — любая, согласно: <строка подключения к БД> ::= [<сервер>[/<порт>]]:<БД> <сервер> ::= <DNS-имя>|<TCPIP-адрес> <порт>::=<номер порта службы Firebird> <БД>::=<полное имя файла БД>|<алиас> ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:54 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiв LocalDatabaseName надо запретить указывать "сетевой" путь Ты бы всё-таки сказал, нужно тебе запретить неправильное определение локальности БД или удалённости. То есть что будет хуже: посчитать локальную БД удалённой или удалённую локальной. Добиться полной точности практически невозможно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:01 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
1. Придумываешь любое гадкое случайное слово. 2. Открываешь порт 12345 на локалке. 3. Цепляешься к нему по адресу СУБД. 4. Пишешь туда п.1 5. Если совпало, значит база локальная. Админам сообщаешь, что наличие фаерволов, брандмауэров влияет на работу твоего ПО. Пусть учатся добавлять в исключения на уровне групповых политик. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:07 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiТогда в LocalDatabaseName надо запретить указывать "сетевой" путь Зачем решать административные задачи программным путем? Запретить пользователям записывать свой пароль на бумажке (и прочих носителях) - из той же оперы. Чтобы юзера не страдали самодеятельностью - напиши отдельный конфигуратор, носи его на флешке. А строку в ini - зашифруй. Т.е. нужна настройка - админ пришел, настроил, ушел. Фсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:10 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
DarkMasterAndroidZombiТогда в LocalDatabaseName надо запретить указывать "сетевой" путь Зачем решать административные задачи программным путем? Запретить пользователям записывать свой пароль на бумажке (и прочих носителях) - из той же оперы. Чтобы юзера не страдали самодеятельностью - напиши отдельный конфигуратор, носи его на флешке. А строку в ini - зашифруй. Т.е. нужна настройка - админ пришел, настроил, ушел. Фсе. Пожалуй, что ты прав... Не надо решать административные задачи программным путем. По крайней мере заставили крепко задуматься над постановкой задачи от заказчика... Спасибо, DarkMaster, и всем-всем-всем)) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:19 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiНе надо решать административные задачи программным путем. Вот и думай после этого за других... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:21 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiИ как из строки коннекта выделить "имя сервера"? Никто ещё не ответил=( как из строки c:\dir\db.fdb выделить имя сервера, когда тут его нет? зачем тебе алиас или не алиас? какая разница как написан путь к БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:22 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovAndroidZombiв LocalDatabaseName надо запретить указывать "сетевой" путь Ты бы всё-таки сказал, нужно тебе запретить неправильное определение локальности БД или удалённости. То есть что будет хуже: посчитать локальную БД удалённой или удалённую локальной. Добиться полной точности практически невозможно. Хуже посчитать удалённую локальной. Удалённая должна быть только для чтения — там "чужие" или "общие" данные. Локальную можно изменять через GUI приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:23 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiDimitry Sibiryakovпропущено... Ты бы всё-таки сказал, нужно тебе запретить неправильное определение локальности БД или удалённости. То есть что будет хуже: посчитать локальную БД удалённой или удалённую локальной. Добиться полной точности практически невозможно. Хуже посчитать удалённую локальной. Удалённая должна быть только для чтения — там "чужие" или "общие" данные. Локальную можно изменять через GUI приложения. Так и знал, что речь о репликации. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:24 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
AndroidZombiУдалённая должна быть только для чтения — там "чужие" или "общие" данные. Тогда проще и надёжнее разрулить это правами доступа. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:28 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
MasterZivlocalhost -- это 127.0.0.* Если на то пошло, то 127.*.*.*. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:35 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovAndroidZombiУдалённая должна быть только для чтения — там "чужие" или "общие" данные. Тогда проще и надёжнее разрулить это правами доступа. Да, в этом направлении и двинусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 14:54 |
|
Определить по строке подключения, что БД на удалённом компьютере
|
|||
---|---|---|---|
#18+
DarkMasterAndroidZombi, Можно заглянуть в MON$ATTACHMENTS - там есть имя файла БД. И IP коннекта. Берешь JCL, вызываешь LocalIP:=jclSysInfo.GetIPAddress('localhost'); NetIP:=jclSysInfo.GetIPAddress(''); Потом сравниваешь их с IP из MON$ATTACHEMENTS. Спасибо, это интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 15:07 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1562608]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 171ms |
0 / 0 |