Мне нужно получить информацию с моего компьютера, я могу получить ее с помощью PHP-скрипта, но желательно Perl-скрипта, если это возможно. В основном мне нужен список пользовательских источников данных ODBC и их URL сервера если определено.
Я видел этот ответ о том, как извлечь его из реестра с помощью PHP, но мне также нужен URL-адрес сервера.
Я собрал этот скрипт на Perl очень, очень быстро, но он, кажется, делает то, что вам нужно. Он помещает имя соединения в хеш в качестве ключа, а затем помещает строку сервера в качестве значения. Обратите внимание, что в соответствии с вашим вопросом это будет только выборка определенных пользователем источников (хотя было бы тривиально адаптировать для сбора системных DSN):
use warnings;
use strict;
use Win32::TieRegistry;
my $odbc_key = $Registry->{'CUser\\Software\\ODBC\\ODBC.INI'};
my %sources;
for (keys %$odbc_key) {
next if /ODBC Data Sources/;
s/\\//g;
$sources{$_} = $odbc_key->{"$_\\Server"};
}
for my $dsn (keys %sources) {
print "dsn: $dsn, server: $sources{$dsn}\n";
}
Выход:
dsn: Test, server: localhost
dsn: Blah, server: yay.blah.com
Других решений пока нет …