当前位置:  技术问答>linux和unix

如何在sco openserver中通过c程序获得mac地址??

    来源: 互联网  发布时间:2015-06-07

    本文导语:  一定要c代码,谢谢,急! | 获得mac地址需要跟链路层会话。一般的SRV4系统使用DLPI接口。BSD系统使用ioctl 。我没用过SVR4系统,但我记得它支持DLPI的。下面是在solaris下通过dlpi接口取得MAC地址...

一定要c代码,谢谢,急!

|
获得mac地址需要跟链路层会话。一般的SRV4系统使用DLPI接口。BSD系统使用ioctl
。我没用过SVR4系统,但我记得它支持DLPI的。下面是在solaris下通过dlpi接口取得MAC地址的例子,你试试吧。

#include 
#include 
#include 
#include 
#include 

unsigned long buf[0x1000];
dl_attach_req_t     *atreq=(dl_attach_req_t *)buf;
dl_phys_addr_req_t  *adreq=(dl_phys_addr_req_t *)buf;
dl_phys_addr_ack_t  *adack=(dl_phys_addr_ack_t *)buf;

main()
{
    int i;
    int fd;
    int flag=0;
    unsigned char *p;
    struct strbuf sb;
    struct pollfd fds[1];

    sb.buf=(char *)buf;
    sb.maxlen=sizeof(buf);

    /* Open device */
    fd=open("/dev/hme", O_RDWR);
    if (fddl_primitive=DL_ATTACH_REQ;
    atreq->dl_ppa=0;
    putmsg(fd, &sb, NULL, 0);
    poll(fds, 1, 60000);
    getmsg(fd, &sb, NULL, &flag);

    /* Get physical address */
    sb.len=sizeof(dl_phys_addr_req_t);
    adreq->dl_primitive=DL_PHYS_ADDR_REQ;
    adreq->dl_addr_type=DL_CURR_PHYS_ADDR;
    putmsg(fd, &sb, NULL, 0);
    poll(fds, 1, 60000);
    sb.len=0;
    getmsg(fd, &sb, NULL, &flag);

    /* Close device */
    close(fd);

    /* Output */
    printf("Physical Address: ", p[i]);
    p=(unsigned char *)adack+adack->dl_addr_offset;
    for (i=0; idl_addr_length; i++)
    {
        printf("%02X", p[i]);
    }
    printf("n");

    return(0);
}

|
up

|
http://chinaunix.net/forum/viewtopic.php?t=85716

|
实时下面的代码
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define ETH_NAME "eth0"

int main()
{
int sock;
struct sockaddr_in sin;
struct sockaddr sa;
struct ifreq ifr;
unsigned char mac[6];

sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock == -1)
{
perror("socket");
return -1;
}

strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - 1] = 0;

memset(mac, 0, sizeof(mac));
if (ioctl(sock, SIOCGIFHWADDR, &ifr) 

    
 
 

您可能感兴趣的文章:

  • SCO OpenServer 5.05和SCO UNIXWARE7.11有什么区别?
  • About SCO Openserver and Oracle
  • 请问SCO的openserver和unixware有什么不同?
  • 谁有sco openserver 5.0.5 的开发序列号?
  • 现在SCO OpenServer与Solaris在世界上的使用率是怎样的?
  • 如何安装SCO OpenServer 5的网络开发包
  • SCO Openserver 5 TCP/IP
  • 为什么我安装sco openserver unix5.05的时候用光驱不能启动?
  • 求SCO Unix OpenServer 5.05 的linese Number 和linese Code?(20分)
  • 谁有Sco OpenServer 5.0.2的开发版的license? 谢谢!
  • 请问:SCO OpenServer Release 5.0.6版本哪里可以下载?
  • 关于SCO OpenServer 5.0.5 安装的问题
  • 在pc上,以sco openserver为操作系统,可否用ghost对其进行镜像?
  • 我用sco openserver,我一般用scoadmin来新建用户,请问怎么用纯命令方式来新建用户?
  • SCO OPENSERVER5.05无法识别CD-R?
  • 怎么看unix系统sco openserver 5.05打了多少补丁啊?
  • 你熟sco openserver5.05吗?
  • 怎样才能在SCO OpenServer5.05中查看软盘,,,这里谢谢了,,
  • sco openserver 能装在pc上吗?
  • 有谁知道sco unix openserver 5.06的开发包的序列号?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SCO UNIX 5.05下的线程软件包可以从哪里获得?(在线等待)
  • 请问在SCO下的c编程模式下,通过哪个函数获得系统的日期和时间?
  • sco unix中类似reg.sco的文件怎么执行?
  • 安装SCO UNIX到PC机上是否一定要用SCO UNIX光盘?
  • 博客 iis7站长之家
  • 请问谁在SCO上用过PERL的DBI/DBD这些东西?MD5算法,LDAP,MYSQL都支持SCO吗?
  • 高分,在sco unix5.05下面用modem进行拔号,或sco unix的学习教程
  • Sco Unix 和red hat linux的最新版本是什么,各有几张盘,SCO UNIX和微软的Xenix哪个更好?
  • 在sun公司网站上,好象没有jdk for sco unix 的版本,可否下载for solaris的辕马在sco unix 下编译
  • sos!我的手提上的网卡是sis900,装了sco 5.0.5发现没有驱动,哪里可以下到sis 900的网卡在sco下的驱动??
  • 路由器配置:有一局域网(SCO UNIX 5.0.5)与一台主机(SCO UNIX 5.0.5)通过祯中继联接。路由器(CISCO2610作主节点)在局域的IP为IPa,广
  • 学SCO还是学SOLARIS
  • 菜鸟向sco unix+oracle高手请教
  • 请问TOMCAT的LINUX包是否都可以在SCO UNIX中运行和安装
  • 请问sco-Unix的最新版本是多少
  • sco连接数据库的问题
  • SCO Unix下的C程序编译问题?
  • sco opensever5是什么东东?有人在用吗?
  • sco unix5.0.6与win2000的双操作系统???
  • 在sco unix中mount一个fat32的分区的问题……
  • 提议:成立SCO UNIX联盟!
  • sco unix自动telnet到solaris上执行关机命令???


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3