读取MAC地址,winXP可以用,win7运行不了,求教
读取MAC地址,winXP可以用,但是到了win7运行不了,求教源程序如下:
c subroutine machostnm
USE MSFLIB
LOGICAL(4)result
charactersult(17)
c write(*,*) ' '
write(*,'(1x,a16\)')' 正在验证用户... '
result = SYSTEMQQ('ipconfig /all >ipconfig.txt')
result = SYSTEMQQ('find"Physical Address" ipconfig.txt >
&massage.txt')
result = SYSTEMQQ('for /f "skip=1 tokens=2 delims=:" %a in
& (massage.txt) do @echo %a>a.txt')
result = SYSTEMQQ('for /f "tokens=* delims=- " %a in (a.txt)
& do @echo %a>mac地址.txt')
result = SYSTEMQQ('find"Host Name" ipconfig.txt >
&massage.txt')
result = SYSTEMQQ('for /f "skip=1 tokens=2 delims=:" %a in
& (massage.txt) do @echo %a>a.txt')
result = SYSTEMQQ('for /f "tokens=* delims=- " %a in (a.txt)
& do @echo %a>host用户名.txt')
result = SYSTEMQQ('del ipconfig.txt')
result = SYSTEMQQ('del massage.txt')
result = SYSTEMQQ('del a.txt')
! 物理网卡地址在mac地址.txt文件中
open(12,file='mac地址.txt')
read(12,'(17a1)')(sult(i),i=1,17)
close(12,status='delete')
write(111,*) sult
c write(*,'(A28,17a1\)')'mac地址:',(sult(i),i=1,17)
open(12,file='host用户名.txt')
read(12,'(17a1)',err=123)(sult(i),i=1,17)
close(12,status='delete')
123 write(*,'(1x,A12,17a1\)')' 用户名:',(sult(i),i=1,17)
return
end
win xp下面用得好好的,到了win7就用不了。
这是一个程序加密的子程序,把授权的电脑MAC地址写入源程序,电脑MAC地址跟程序一致才能运行。
现在系统都逐步升级到win7 win8,导致原有程序无法运行或无法加密。
求教论坛高手。
win7有更高的权限,所以你的代码可能无法得到。
说实话,即便你的代码可以跑。也很容易破解。只要写一个假的mac地址到临时文件,设置为只读即可。
另外,mac地址也可以更改,很容易的。
所以,我劝你另谋蹊径。 chuxf 发表于 2014-7-6 16:56
win7有更高的权限,所以你的代码可能无法得到。
说实话,即便你的代码可以跑。也很容易破解。只要写一个假 ...
请教大师: WIN 7系统下面,fortran如何读取系统MAC地址?
语法里没有这些内容的规定。你得自己想办法。
就像我上面说的那样,MAC地址很容易修改,所以根本不保险。我建议你读取硬盘序列号或CPUID更合适。 你试试把
find"Physical Address" ipconfig.txt >
修改为
find"物理地址" ipconfig.txt >
把
find"Host Name" ipconfig.txt >
修改为
find"主机名" ipconfig.txt >
反正我这里 ipconfig 的输出是中文的。改成搜索中文之后,就可以得到结果了。
据我所知iwin7 下面是中文的 你用中文的试试
页:
[1]