static void convert_ns_addr_to_mbed(SocketAddress *s_addr, const ns_address_t *ns_addr)
{
    char str[40];
    ip6tos(ns_addr->address, str);
    s_addr->set_port(ns_addr->identifier);
    s_addr->set_ip_address(str);
}
Esempio n. 2
0
void CDeviceDlg::OnLbnSelchangeListDevice()
{
	// TODO: 在此添加控件通知处理程序代码
	pcap_if_t* alldevs=finddevs();
	pcap_if_t* d=NULL;
	CString nicDes,strInfo;
	int index=m_lstDev.GetCurSel();
	if (index>=0)
	{
		m_lstDev.GetText(index,nicDes);
	}
	for(d = alldevs; d != NULL; d = d->next)
	{
		if (nicDes==CString(d->description))
		{
			m_curNIC=CString(d->name);
			strInfo=CString(d->name);
			strInfo+=CString(L"\r\n\r\nDescription: ")+CString(d->description);
			strInfo+=CString(L"\r\nLoopback: ")+CString((d->flags & PCAP_IF_LOOPBACK)?"yes":"no");
			for(pcap_addr_t *a=d->addresses;a;a=a->next) 
			{
				char ip6str[128];
				CString temp;
				temp.Format(L"\r\nAddress Family: #%d",a->addr->sa_family);
				strInfo+=temp;
				switch(a->addr->sa_family)
				{
				case AF_INET:
					strInfo+=CString(L"\r\nAddress Family Name: AF_INET");
					if (a->addr)
						strInfo+=CString(L"\r\nAddress: ")+CString(iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr));
					if (a->netmask)
						strInfo+=CString(L"\r\nNetmask: ")+CString(iptos(((struct sockaddr_in *)a->netmask)->sin_addr.s_addr));
					if (a->broadaddr)
						strInfo+=CString(L"\r\nBroadcast Address: ")+CString(iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr));
					if (a->dstaddr)
						strInfo+=CString(L"\r\nDestination Address: ")+CString(iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr));
					break;

				case AF_INET6:
					strInfo+=CString(L"\r\nAddress Family Name: AF_INET6");
					if (a->addr)
						strInfo+=CString(L"\r\nAddress: ")+CString(ip6tos(a->addr, ip6str, sizeof(ip6str)));
					break;

				default:
					strInfo+=CString(L"\r\nAddress Family Name: Unknown");
					break;
				}
			}
			m_txtDevInfo.SetWindowText(strInfo);
			break;
		}
	}
	if (alldevs)
	{
		pcap_freealldevs(alldevs);
	}
}
char *Nanostack::Interface::get_ip_address(char *buf, nsapi_size_t buflen)
{
    NanostackLockGuard lock;
    uint8_t binary_ipv6[16];

    if (buflen >= 40 && arm_net_address_get(interface_id, ADDR_IPV6_GP, binary_ipv6) == 0) {
        ip6tos(binary_ipv6, buf);
        return buf;
    } else {
        return NULL;
    }
}
Esempio n. 4
0
/* Public functions */
int8_t nd_tasklet_get_router_ip_address(char *address, int8_t len)
{
    network_layer_address_s nd_address;

    if ((len >= 40) && (0 == arm_nwk_nd_address_read(
                            tasklet_data_ptr->network_interface_id, &nd_address))) {
        ip6tos(nd_address.border_router, address);
        //tr_debug("Router IP address: %s", address);
        return 0;
    } else {
        return -1;
    }
}
Esempio n. 5
0
int8_t thread_tasklet_get_ip_address(char *address, int8_t len)
{
    uint8_t binary_ipv6[16];

    if ((len >= 40) && (0 == arm_net_address_get(
                            thread_tasklet_data_ptr->nwk_if_id, ADDR_IPV6_GP, binary_ipv6))) {
        ip6tos(binary_ipv6, address);
        //tr_debug("IP address: %s", address);
        return 0;
    } else {
        return -1;
    }
}
Esempio n. 6
0
/* Print all the available information on the given interface */
void ifprint(pcap_if_t *d)
{
  pcap_addr_t *a;
  char ip6str[128];

  /* Name */
  printf("%s\n",d->name);

  /* Description */
  if (d->description)
    printf("\tDescription: %s\n",d->description);

  /* Loopback Address*/
  printf("\tLoopback: %s\n",(d->flags & PCAP_IF_LOOPBACK)?"yes":"no");

  /* IP addresses */
  for(a=d->addresses;a;a=a->next) {
    printf("\tAddress Family: #%d\n",a->addr->sa_family);
  
    switch(a->addr->sa_family)
    {
      case AF_INET:
        printf("\tAddress Family Name: AF_INET\n");
        if (a->addr)
          printf("\tAddress: %s\n",iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr));
        if (a->netmask)
          printf("\tNetmask: %s\n",iptos(((struct sockaddr_in *)a->netmask)->sin_addr.s_addr));
        if (a->broadaddr)
          printf("\tBroadcast Address: %s\n",iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr));
        if (a->dstaddr)
          printf("\tDestination Address: %s\n",iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr));
        break;

	  case AF_INET6:
       printf("\tAddress Family Name: AF_INET6\n");
#ifndef __MINGW32__ /* Cygnus doesn't have IPv6 */
        if (a->addr)
          printf("\tAddress: %s\n", ip6tos(a->addr, ip6str, sizeof(ip6str)));
#endif
		break;

	  default:
        printf("\tAddress Family Name: Unknown\n");
        break;
    }
  }
  printf("\n");
}
Esempio n. 7
0
const char * NanostackInterface::get_ip_address()
{
    NanostackLockGuard lock;

    for (int if_id = 1; if_id <= 127; if_id++) {
        uint8_t address[16];
        int ret = arm_net_address_get(if_id, ADDR_IPV6_GP, address);
        if (ret == 0) {
            ip6tos(address, text_ip_address);
            return text_ip_address;
        }
    }
    // Must result a valid IPv6 address
    // For gethostbyname() to detect IP version.
    return "::";
}