51Testing软件测试论坛
标题:
怎样在lr中获取IP和MAC?
[打印本页]
作者:
yt1998
时间:
2010-12-23 23:50
标题:
怎样在lr中获取IP和MAC?
需要参数化本机的机器名、IP、MAC。机器名倒是好办,lr_get_host_name( )就解决了。IP、MAC有什么办法获取?不是用IP欺骗,要的是实际的IP地址。现在使用file来手工写进去,感觉很不方便,换一台机器就要改一下数据,烦。
作者:
自由基
时间:
2010-12-24 10:19
好像提供了一个方法,记得不清了,你可以查看下帮助
lr_get_vuser_ip( );
获取vuser的ip
作者:
yt1998
时间:
2010-12-24 21:44
回复
2#
自由基
这个似乎是用在IP欺骗的。
作者:
msnshow
时间:
2010-12-25 19:07
IP那个应该 都可以的吧,与是否使用虚拟IP无关吧
作者:
yt1998
时间:
2010-12-25 23:16
回复
4#
msnshow
试过不行的,得到的是空值。
作者:
sunnyswu
时间:
2010-12-26 10:40
不熟悉 看看能不能读取注册表
或者system32下的文件
作者:
PrefTest
时间:
2010-12-26 22:08
写个DLL来获取IP、MAC地址,然后在LR中调用
作者:
C组十三
时间:
2010-12-26 22:56
可以考虑从注册表读取,比较简单有效,但得配置编译环境
作者:
婴儿
时间:
2010-12-27 15:19
本帖最后由 婴儿 于 2010-12-28 13:32 编辑
提供一个办法,通过调用Windows命令行ipconfig /all来实现
如果ipconfig /all的结果类似以下这样:
Windows IP Configuration
Host Name . . . . . . . . . . . . : testhost
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Broadcom BCM5708C NetXtreme II GigE (NDIS VBD Client)
Physical Address. . . . . . . . . : 00-1E-B9-D3-20-E0
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 172.16.1.28
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.16.1.1
DNS Servers . . . . . . . . . . . : 202.98.96.68
61.139.2.69
只有一个连接,那么用下面代码可以实现:
Action()
{
//取本机第一个MAC地址和IP
char * filename = "c:\\temp.txt",* s1,* s2;
char command[1024],buffer[10240],left[1024],IP[128],MAC[128];
long file_stream;
int len;
sprintf(command, "ipconfig /all > %s", filename);
system(command);//执行命令行(结果写到文件)
//打开文件,读取,关闭文件,删除文件
if ((file_stream = fopen(filename, "r")) == NULL) {
lr_error_message ("Cannot open %s", filename);
return -1;
}
fread(buffer, sizeof(char), 10240, file_stream);
if (ferror(file_stream))
lr_output_message ("Error reading file %s", filename);
lr_output_message ("ipconfig /all = \n%s", buffer );
if (fclose(file_stream))
lr_error_message ("Error closing file %s", filename);
remove(filename);
//处理从文件读取的内容
strcpy(left,"Physical Address. . . . . . . . . : ");
len=strlen(left);
s1=(char *)strstr(buffer,left);
s1+=len;
s2=(char *)strstr(s1,"\r\n");
len=s2-s1;
strncpy(MAC,s1,len);
strcpy(left,"IP Address. . . . . . . . . . . . : ");
len=strlen(left);
s1=(char *)strstr(s2,left);
s1+=len;
s2=(char *)strstr(s1,"\r\n");
len=s2-s1;
strncpy(IP,s1,len);
lr_output_message ("IP = %s,MAC = %s", IP, MAC);
return 0;
}
复制代码
处理字符串的部分,可以写成函数,更方便处理
如果有多个网卡,还需要进一步修改,可以先按网卡取相应的信息(如按关键词Ethernet adapter分块),再在各块中查找需要的内容(如按网段查找)
作者:
jj_ljw
时间:
2010-12-29 15:43
同等
lr_get_vuser_ip( );
这个函数的使用,试过得到的是空值
作者:
mm22gg
时间:
2015-7-7 17:51
LR版本:11.00
脚本类型:C语音
在Virtual User Generator中运行,下面的代码段获取不到IP地址,
需要在Controller中运行,并开启IP Spoofer后,就能正常获取本机IP地址
//// 校验当前配置的IP相关变量
char *ip;
//// 校验当前配置的IP是否与期望配置的IP一致
ip = lr_get_vuser_ip();
if (ip)
lr_output_message("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@The IP address is %s", ip);
else
lr_output_message("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IP spoofer disabled, Please enable it");
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2