MAC ADRESS DO SERVIDOR

FUTURA 20/09/2023 16:20:09
#501752
Pessoal, preciso pegar o endereço mac da placa do servidor, ou melhor, do micro que esta instalado o sql server, achei o código abaixo na net, e testei pelo manager studio, deu certo, acessei alguns bancos de clientes para testar, e trouxe o mac das máquinas. A dúvida, como executo essa instrução pelo vb6 ?, nesse caso não pode ser pelo vb.net nem c#. Caso alguém tenha uma forma mais simples, e puder passar....


declare @t table (i uniqueidentifier default newsequentialid(), m as cast(i as char(36)))
insert into @t default values;
select substring(m,25,2) + '-' + substring(m,27,2) + '-' + substring(m,29,2) + '-' + substring(m,31,2) + '-' + substring(m,33,2) + '-' + substring(m,35,2) AS MacAddress FROM @t

KERPLUNK 20/09/2023 20:56:14
#501754
É um script SQL...
Dim sql As String
sql = "declare @t table (i uniqueidentifier default newsequentialid(), m as cast(i as char(36))); insert into @t default values;
select substring(m,25,2) + '-' + substring(m,27,2) + '-' + substring(m,29,2) + '-' + substring(m,31,2) + '-' + substring(m,33,2) + '-' + substring(m,35,2) AS MacAddress FROM @t"

Dim sqlCommand as new SqlCommand
Set SqlCommand = new SqlCommand
SqlCommand.CommandText =sql
bla bla bla
FUTURA 21/09/2023 09:47:52
#501756
Vb6 ?

em .net peguei de forma bem simples:
Carregar_Banco()
Sqlcmd = New SqlCommand("declare @t table (i uniqueidentifier default newsequentialid(), m as cast(i as char(36))); insert into @t default values; select substring(m,25,2) + '-' + substring(m,27,2) + '-' + substring(m,29,2) + '-' + substring(m,31,2) + '-' + substring(m,33,2) + '-' + substring(m,35,2) AS MacAddress FROM @t", Cnn)
Dr = Sqlcmd.ExecuteReader()
If Dr.Read Then
MsgBox("mac" & Dr("MacAddress"))
End If

Preciso em vb6, vou fazer mais uns testes..
KERPLUNK 21/09/2023 10:21:43
#501757
Em VB6, simplesmente faça um recordset e rode esse script nele.
MacAddress é o campo da tabela que esse script gera.
FUTURA 21/09/2023 10:54:09
#501758

Citação:

MacAddress é o campo da tabela que esse script gera



Sim, pela lógica seria, mas não esta vindo, acho que algo na string não esta formatado corretamente, mesmo sendo a mesma que usei no vb.net. Esta retornando nula ou vazia.

sql = "declare @t table (i uniqueidentifier default newsequentialid(), m as cast(i as char(36))) insert into @t default values; select substring(m,25,2) + '-' + substring(m,27,2) + '-' + substring(m,29,2) + '-' + substring(m,31,2) + '-' + substring(m,33,2) + '-' + substring(m,35,2) AS MacAddress FROM @t"

Set Rs = New ADODB.Recordset
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
If Not Rs.EOF Then
MsgBox ("mac " & Rs!MacAddress)
End If
KERPLUNK 21/09/2023 11:07:41
#501759
Tenta:
MsgBox ("mac " & Rs.Fields("MacAddress").Value)
ou
MsgBox ("mac " & Rs.Fiends(0).Value)
FUTURA 21/09/2023 11:13:27
#501761
Não vem, o erro esta na sintaxe, não chega a abrir o recorset, joguei na rotina de tratamento, na linha "If Not Rs.EOF Then" (operação não permitida qdo o objeto esta fechado), não esta gerando erro de sintaxe, mas não chega a abrir o rs.....
KERPLUNK 21/09/2023 14:16:43
#501762
Tenta esse script:

DECLARE @macAddressValue CHAR(36);
SET @macAddressValue = CAST(newsequentialid() AS CHAR(36));

SELECT
SUBSTRING(@macAddressValue, 25, 2) + '-' +
SUBSTRING(@macAddressValue, 27, 2) + '-' +
SUBSTRING(@macAddressValue, 29, 2) + '-' +
SUBSTRING(@macAddressValue, 31, 2) + '-' +
SUBSTRING(@macAddressValue, 33, 2) + '-' +
SUBSTRING(@macAddressValue, 35, 2) AS MacAddress;

Ele não cria uma tabela temporária.
FUTURA 21/09/2023 15:14:31
#501764
Não vai, retorna que esse tipo de consulta precisa criar ou alterar uma tabela.. coisa de doido.. rssss
WEBMASTER 22/09/2023 12:04:59
#501772
é....

Desculpa ai, posso estar sendo bem tosco mas desde quando newsequentialid() vai retornar um mac address ???
Se você quer um GUID, peça um GUID....
 var guid = Guid.NewGuid() 


Essa função em banco que vocês estão discutindo tanto não vai só gerar um GUID aleatório e pronto ?
FUTURA 22/09/2023 15:00:26
#501774

Citação:

é....Desculpa ai, posso estar sendo bem tosco mas desde quando newsequentialid() vai retornar um mac address ???Se você quer um GUID, peça um GUID....var guid = Guid.NewGuid()Essa função em banco que vocês estão discutindo tanto não vai só gerar um GUID aleatório e pronto ?



Não sei não.. rssss. Achei na net dizendo que pegava o mac do servidor, ai testei pelo manager no meu micro e tbm acessando servidores de clientes, trouxe o q seria o tal mac de cada, e manteve o mesmo, não sei se seria mac, ou alguma key da instalação em questão.. O que eu preciso, é saber se o sistema esta acessando o sql server do servidor que ele foi instalado. Por que isso ?, Tive um caso q o técnico clonou o servidor pra trocar o disco, e depois acabaram fazendo acesso do sistema, nos dois servidores e tive problemas. Meu sistema tem um controle de licenças que acessa um bd em nuvem, onde registra alguns dados do acesso, pensei em coletar o mac do servidor, justamente pra saber se esta acessando do servidor licenciado para o cliente.
Página 1 de 2 [19 registro(s)]
Tópico encerrado , respostas não são mais permitidas