letsunsing 发表于 2014-7-6 10:42:53

读取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,导致原有程序无法运行或无法加密。

求教论坛高手。

楚香饭 发表于 2014-7-6 16:56:17

win7有更高的权限,所以你的代码可能无法得到。

说实话,即便你的代码可以跑。也很容易破解。只要写一个假的mac地址到临时文件,设置为只读即可。

另外,mac地址也可以更改,很容易的。

所以,我劝你另谋蹊径。

letsunsing 发表于 2014-7-6 20:25:34

chuxf 发表于 2014-7-6 16:56
win7有更高的权限,所以你的代码可能无法得到。

说实话,即便你的代码可以跑。也很容易破解。只要写一个假 ...

请教大师: WIN 7系统下面,fortran如何读取系统MAC地址?

楚香饭 发表于 2014-7-6 21:46:35

语法里没有这些内容的规定。你得自己想办法。

就像我上面说的那样,MAC地址很容易修改,所以根本不保险。我建议你读取硬盘序列号或CPUID更合适。

fcode 发表于 2014-7-6 22:49:11

你试试把
find"Physical Address" ipconfig.txt >
修改为
find"物理地址" ipconfig.txt >


find"Host Name" ipconfig.txt >
修改为
find"主机名" ipconfig.txt >

反正我这里 ipconfig 的输出是中文的。改成搜索中文之后,就可以得到结果了。
      

珊瑚虫 发表于 2014-7-9 19:46:05

据我所知iwin7 下面是中文的 你用中文的试试
页: [1]
查看完整版本: 读取MAC地址,winXP可以用,win7运行不了,求教