MAC ADRESS DO SERVIDOR

OCELOT 22/09/2023 15:06:22
#501775
Resposta escolhida
Citação:

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.RecordsetRs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnlyIf Not Rs.EOF Then MsgBox ("mac " & Rs!MacAddress)End If



No VB6 tem uma questão ai é que esse consulta retorna dois recordsets, um do resultado do insert e outro do select, é só pegar o proximo recordset usando a funcao NextRecordset dele

Dim cnn As New ADODB.Connection
cnn.Open "Provider=sqloledb;Server=meuservidor;Database=bancodedados;UID=usuario;PWD=senha;"

Dim cmd As New ADODB.Command
cmd.CommandText = "declare @t table (i uniqueidentifier default newsequentialid(), m as cast(i as char(36)))" _
& vbCrLf & "insert into @t default values;" _
& vbCrLf & "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 cmd.ActiveConnection = cnn

Dim ret As ADODB.Recordset
Set ret = cmd.Execute()
Set ret = ret.NextRecordset()

MsgBox ret!MacAddress


Quanto ao que o WEBMASTER falou, olhando simplesmente o código parece mesmo isso, mas existe uma tecnicalidade ali que faz com que isso possa ser usado para algo que não é o uso normal dela.

No caso a função newsequentialid() não retorna simplesmente um Guid qualquer, e sim um que ele garante que vai ser único, nunca repetindo, e pra isso funcionar em PCs diferentes e ainda retornar um valor único ele coloca o endereço MAC como parte do guid, dai esse código só se aproveita disso pra tirar de um guid gerado o endereço em si
FUTURA 22/09/2023 15:31:39
#501776
Alterado em 22/09/2023 15:46:05 OCELOT, executei aqui no vb6, deu certinho. Vou fazer alguns testes. Acho que vai servir para o meu propósito. Vou checar a string toda, pra ver como vem esse mac, pois em testes em servidores dos clientes e comparando com o mac da placa, foi tudo certo, mas no meu micro, apesar de manter sempre o mesmo número, não bate com o mac q vejo no windows.
WEBMASTER 23/09/2023 16:18:04
#501777
Ou seja...

NEWID()
Um guid dinamico e randomico que evita colisão

newsequentialid()
Um guid unico e que pode gerar colisão pois será gerado por máquina

Isso ?
FUTURA 25/09/2023 08:03:36
#501784

Citação:

Ou seja...NEWID()Um guid dinamico e randomico que evita colisãonewsequentialid()Um guid unico e que pode gerar colisão pois será gerado por máquinaIsso ?


Pelo que entendi não, pois ao gerar o ID, usa o mac na composição, acho que é ao contrário.
WEBMASTER 25/09/2023 15:04:43
#501787
Ué...
Que estranho, usar ou não o MAC na composição/geração é meio que chover no molhado, pois é principio básico de qualuqer UUID (como GUID) que ele seja de fato UNIVERSAL, ou seja, nunca haverá 2 valores iguais "no mundo".
Implicitamente, entendo eu, que algum algoritmo interno considera SEMENTES individuais (baseado em MAC ou algo mais baixo nivel de hardware da maquina).
Sendo assim, NEWID() ou NEWSEQUENTIALID() no fundo geram o mesmo resultado (sempre sem colisão).
FUTURA 25/09/2023 16:39:53
#501788
Alterado em 25/09/2023 16:40:29 Mas a idéia inicial a qual o tópico se propõe, é apenas obter o MAC para validar se o servidor em questão tem o endereço no qual foi instalado o sql server.
WEBMASTER 26/09/2023 09:09:59
#501789
Bom, entendo eu que toda a discussão foi para a esquerda e o problema está na direita.
Um GUID randomico não vai te dar essa resposta.
FUTURA 26/09/2023 10:08:56
#501790
Citação:

Bom, entendo eu que toda a discussão foi para a esquerda e o problema está na direita.Um GUID randomico não vai te dar essa resposta.



Estou aceitando sugestões para que eu possa obter o mac do servidor de banco de dados via código sql, se essa consulta traz essa informação, resolve o problema, senão aceito sugestões e ajuda dos colegas.
FUTURA 17/10/2023 15:49:35
#501816
ok
Página 2 de 2 [19 registro(s)]
Tópico encerrado , respostas não são mais permitidas