在C语言中,如何将字符串“192.168.1.1”转换成MAC地址或IP地址?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言中,如何将字符串“192.168.1.1”转换成MAC地址或IP地址?相关的知识,希望对你有一定的参考价值。
谢谢大家的帮忙,现在转成IP地址的问题已经解决,只剩下转换成mac地址的问题了。可能是我说的不太清楚。是这样的,我是要将字符串“192.168.1.1”转换成snmp所能接受的mac地址,比如ip地址现在已经转换成了一个类型为in_addr_t(U_int32)类型的数据了,不知道mac地址相应的要进行哪种处理,希望能得到大家继续的帮助!谢谢!
参考技术A //将CString 型IP地址在IPAddressCtrl中显示CString strIP="192.168.1.1";
DWORD dwIP;
dwIP = inet_addr(strIP);
unsigned char *pIP = (unsigned char*)&dwIP;
m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2), *(pIP+3));
//将IPAddressCtrl中的IP地址获得并转换成CString型
unsigned char *pIP;
CString strIP;
DWORD dwIP;
m_ipAddr.GetAddress(dwIP);
pIP = (unsigned char*)&dwIP;
strIP.Format("%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
参考别人的,可以借鉴下。本回答被提问者采纳 参考技术B 根据IP地址是得不到MAC地址的,因为这是两个不同的概念。
字符串转IP地址,也不用转的,因为也没有这个说法。 IP地址可以用字符串保存 参考技术C 因为ip地址每个段必然是最多3位数字
所以,定义一个字符串"192.168.1.1",for循环整个字符串。以‘.’为分隔,如果'.'之前为一个字符就补充两个0,为两个字符就补充1个0.
大概思路就是这样
参考技术D 我这几天就是编取MAC地址,成功了。
只在同网段的局域网有效,不同网段是无法取到MAC的。
我用的是C++BUILDER6.0,方法不通用,所以,我提供了也对你无用。
不是通用方法,普通办法不易实现。
c语言中,如何将字符串数组中的52提取出来,并转换为int类型
char string[]="R52C05D";
谢谢了
我想把数组中的东西合并成字符串,请问该怎么操作呢
先说简单的,数组转成字符串只要用sprintf函数就可以了,在string.h中,用法和printf很类似,只要在前面加上你要生成的字符串指针就可以了
int sprintf ( char * str, const char * format, ... );
字符串转换成int,首先你要判断是不是数字,将数字提取到一个字符串中,别忘了\0
之后在stdlib.h中有一个库函数atoi()
int atoi ( const char * str );
把建立的字符数组传给这个函数就可以了.
此外新版C库中还有一个strtod函数可以做到这一点
long int strtol ( const char * str, char ** endptr, int base );
只要传开始指针就好,第二个指针是用来指示转换到什么地方停止的。
比如你的情况就可以这么传
char* close;
strtol(string[1],&close,10);
之后close应该指向C 参考技术A #include<stdio.h>
#include<string.h>
#define WRONG -1
int getnum(char*,char*);
int main()
char string[]="R52C05D",str[]="52";
int a = getnum(string,str);/*变量a用来存储查找并转化过来的 str */
printf("%d",a); /*如果a为-1,则说明string 中没有查到str*/
getch();
return 0;
int getnum(char *s,char *s1)
int len1=strlen(s),len2=strlen(s1),sum=0;
if(len2>len1)return(WRONG);
while(*s)
if(*s==*s1)
sum = sum*10+(*s1-'0');
s++;
s1++;
if(!*s1)return sum;
if(!*s)return WRONG;
else
if(sum)return WRONG;
s++;
return WRONG;
本回答被提问者采纳 参考技术B 能吗
以上是关于在C语言中,如何将字符串“192.168.1.1”转换成MAC地址或IP地址?的主要内容,如果未能解决你的问题,请参考以下文章