谷歌浏览器怎样用js获取本机ip

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谷歌浏览器怎样用js获取本机ip相关的知识,希望对你有一定的参考价值。

参考技术A 如果你要纯用js来实现,那就会有安全性的问题了,你要让用户把他的IE针对你的网站,把相应的安全性限制去掉才能使用,js显示本机IP.要注册一个控件,这个控件会出现安全提示,会给用户提示造成很大的影响.所以一般不用js来获取本机IP. 如果你不在意这个的话,代码如下:<html> <HEAD> <TITLE> WMI   Scripting   HTML </TITLE> <META   http-equiv=Content-Type   content= "text/html;   charset=gb2312 "> <SCRIPT   language=JScript   event= "OnCompleted(hResult62pErrorObject,   pAsyncContext) "   for=foo>   document.forms[0].txtMACAddr.value=unescape(MACAddr);   document.forms[0].txtIPAddr.value=unescape(IPAddr);   document.forms[0].txtDNSName.value=unescape(sDNSName);   //document.formbar.submit();     </SCRIPT> <SCRIPT   language=JScript   event=OnObjectReady(objObjectycgobjAsyncContext)   for=foo>       if(objObject.IPEnabled   !=   null   &&   objObject.IPEnabled   !=   "undefined "   &&   objObject.IPEnabled   ==   true)       {         if(objObject.MACAddress   !=   null   &&   objObject.MACAddress   !=   "undefined ")         MACAddr   =   objObject.MACAddress;         if(objObject.IPEnabled   &&   objObject.IPAddress(0)   !=   null   &&   objObject.IPAddress(0)   !=   "undefined ")         IPAddr   =   objObject.IPAddress(0);         if(objObject.DNSHostName   !=   null   &&   objObject.DNSHostName   !=   "undefined ")         sDNSName   =   objObject.DNSHostName;         }     </SCRIPT> <META   content= "MSHTML   6.00.2800.1106 "   name=GENERA......余下全文>>追问

那如果要是不只用js呢,还有别的方法吗

怎样获取本机的ip地址

首先介绍一下用到的结构体

struct hostent {
  const char *h_name; // official name of host
  char **h_aliases; // alias list
  short h_addrtype; // host address type
  short h_length; // length of address
  char **h_addr_list; // list of addresses from name server
  #define h_addr h_addr_list[0] // address, for backward compatiblity
};

struct in_addr {

  in_addr_t s_addr;
};

这里是这个数据结构的详细资料:
struct hostent:
  h_name – 地址的正式名称。
  h_aliases – 空字节-地址的预备名称的指针。
  h_addrtype – 地址类型; 通常是AF_INET。
  h_length – 地址的比特长度。
  h_addr_list – 零字节-主机网络地址指针,网络字节顺序。
  h_addr - h_addr_list中的第一地址。
gethostbyname() 成功时返回一个指向结构体 hostent 的指针,或者 是个空 (NULL) 指针, 完整代码如下:

#include <stdio.h>
#include <unistd.h>
#include <netdb.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>

int main()
{
  char name[65];
  struct hostent* pHost;
  struct hostent hs;
  int i, j;
  int cnt = 0;
  char *ips[8];

  gethostname(name, sizeof(name));
  printf("hostname = %s\n", name);

  /* 获取本机地址 */
  pHost = &hs;
  pHost = gethostbyname(name);

  printf("%s\n",pHost->h_name);
  printf("%d\n",pHost->h_addr);
  struct in_addr *in= (struct in_addr *)pHost->h_addr;
  printf("%s\n", inet_ntoa(*in));

  for (i = 0; pHost != 0 && pHost->h_addr_list[i] != 0; i++) {
    char ip[16]; ip[0] = 0;
    for (j = 0; j < pHost->h_length; j++) {
      char tmp[16];
      if(j > 0) {
        strcat(ip, ".");
      }
      sprintf( tmp, "%u",
          (unsigned int)((unsigned char*)pHost->h_addr_list[i])[j]);
        strcat(ip, tmp);
    }
    ips[cnt] = (char*)malloc(64);
    strcpy(ips[cnt++], ip);
  }

  return 0;
}

 

以上是关于谷歌浏览器怎样用js获取本机ip的主要内容,如果未能解决你的问题,请参考以下文章

中国如何访问谷歌?怎样才能访问谷歌

谷歌浏览器怎样设置拦截广告

谷歌浏览器chrome怎样实现间隔自动刷新网页

我用的谷歌浏览器,想要用javaScript获取MAC地址,这段javaScript代码应该怎么写?

怎样查看自己用的谷歌浏览器是哪个版本的?

怎么样才能上谷歌