如何獲設備的ip
Ⅰ 如何獲取區域網內所有的主機ip
使用net view命令,步驟如下:
點擊右下角的「開始」菜單,在運行或搜索欄中輸入cmd,點擊回車鍵
在命令窗口輸入「net view」,按Enter鍵之後顯示出區域網內所有正在運行的電腦,如圖:
在命令窗口接著輸入「ping —4 計算機名稱」,如小編找的是「JINXIN—02A5F942」這台計算機的IP,按Enter之後就會彈出這台計算機的IP地址,如圖:
如果區域網的電腦比較多的時候,單個查找IP地址就會很麻煩。給大家提供一個批處理文件,可以迅速的查找在線IP地址,代碼如下:
1
2
3
4
5
6
7
8
9
@echo off
net view | find "\\">computername.txt
for /f "delims=\ " %%a in (computername.txt) do (
ping -n 1 %%a -4|findstr /i "TTL" >nul&&call :loop "%%a"
)>>所有在線的IP地址.txt
del computername.txt
pause&exit
:loop
for /f "tokens=2 delims=[]" %%b in ('ping -n 1 %~1 -4^|findstr "["') do echo "%%b"
注意:
所有在線IP的地址都會保存在當前目錄的」所有在線的IP地址.txt「文件中。
Ⅱ 如何獲取ios設備的當前IP地址
最近項目剛好有這個功能,兩個Class IPAddress.h
#define MAXADDRS 32
extern char *if_names[MAXADDRS];
extern char *ip_names[MAXADDRS];
extern char *hw_addrs[MAXADDRS];
extern unsigned long ip_addrs[MAXADDRS];
// Function prototypes
void InitAddresses();
void FreeAddresses();
void GetIPAddresses();
void GetHWAddresses();
IPAddress.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <sys/sockio.h>
#include <net/if.h>
#include <errno.h>
#include <net/if_dl.h>
#include <net/ethernet.h>
#include "IPAddress.h"
#define min(a,b) ((a) < (b) ? (a) : (b))
#define max(a,b) ((a) > (b) ? (a) : (b))
#define BUFFERSIZE 4000
char *if_names[MAXADDRS];
char *ip_names[MAXADDRS];
char *hw_addrs[MAXADDRS];
unsigned long ip_addrs[MAXADDRS];
static int nextAddr = 0;
void InitAddresses()
{
int i;
for (i=0; i<MAXADDRS; ++i)
{
if_names[i] = ip_names[i] = hw_addrs[i] = NULL;
ip_addrs[i] = 0;
}
}
void FreeAddresses()
{
int i;
for (i=0; i<MAXADDRS; ++i)
{
if (if_names[i] != 0) free(if_names[i]);
if (ip_names[i] != 0) free(ip_names[i]);
if (hw_addrs[i] != 0) free(hw_addrs[i]);
ip_addrs[i] = 0;
}
InitAddresses();
}
void GetIPAddresses()
{
int i, len, flags;
char buffer[BUFFERSIZE], *ptr, lastname[IFNAMSIZ], *cptr;
struct ifconf ifc;
struct ifreq *ifr, ifr;
struct sockaddr_in *sin;
char temp[80];
int sockfd;
for (i=0; i<MAXADDRS; ++i)
{
if_names[i] = ip_names[i] = NULL;
ip_addrs[i] = 0;
}
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0)
{
perror("socket failed");
return;
}
ifc.ifc_len = BUFFERSIZE;
ifc.ifc_buf = buffer;
if (ioctl(sockfd, SIOCGIFCONF, &ifc) < 0)
{
perror("ioctl error");
return;
}
lastname[0] = 0;
for (ptr = buffer; ptr < buffer + ifc.ifc_len; )
{
ifr = (struct ifreq *)ptr;
len = max(sizeof(struct sockaddr), ifr->ifr_addr.sa_len);
ptr += sizeof(ifr->ifr_name) + len; // for next one in buffer
if (ifr->ifr_addr.sa_family != AF_INET)
{
continue; // ignore if not desired address family
}
if ((cptr = (char *)strchr(ifr->ifr_name, ':')) != NULL)
{
*cptr = 0; // replace colon will null
}
if (strncmp(lastname, ifr->ifr_name, IFNAMSIZ) == 0)
{
continue; /* already processed this interface */
}
memcpy(lastname, ifr->ifr_name, IFNAMSIZ);
ifr = *ifr;
ioctl(sockfd, SIOCGIFFLAGS, &ifr);
flags = ifr.ifr_flags;
if ((flags & IFF_UP) == 0)
{
continue; // ignore if interface not up
}
if_names[nextAddr] = (char *)malloc(strlen(ifr->ifr_name)+1);
if (if_names[nextAddr] == NULL)
{
return;
}
strcpy(if_names[nextAddr], ifr->ifr_name);
sin = (struct sockaddr_in *)&ifr->ifr_addr;
strcpy(temp, inet_ntoa(sin->sin_addr));
ip_names[nextAddr] = (char *)malloc(strlen(temp)+1);
if (ip_names[nextAddr] == NULL)
{
return;
}
strcpy(ip_names[nextAddr], temp);
ip_addrs[nextAddr] = sin->sin_addr.s_addr;
++nextAddr;
}
close(sockfd);
}
void GetHWAddresses()
{
struct ifconf ifc;
struct ifreq *ifr;
int i, sockfd;
char buffer[BUFFERSIZE], *cp, *cplim;
char temp[80];
for (i=0; i<MAXADDRS; ++i)
{
hw_addrs[i] = NULL;
}
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0)
{
perror("socket failed");
return;
}
ifc.ifc_len = BUFFERSIZE;
ifc.ifc_buf = buffer;
if (ioctl(sockfd, SIOCGIFCONF, (char *)&ifc) < 0)
{
perror("ioctl error");
close(sockfd);
return;
}
ifr = ifc.ifc_req;
cplim = buffer + ifc.ifc_len;
for (cp=buffer; cp < cplim; )
{
ifr = (struct ifreq *)cp;
if (ifr->ifr_addr.sa_family == AF_LINK)
{
struct sockaddr_dl *sdl = (struct sockaddr_dl *)&ifr->ifr_addr;
int a,b,c,d,e,f;
int i;
strcpy(temp, (char *)ether_ntoa((const struct ether_addr *)LLADDR(sdl)));
sscanf(temp, "%x:%x:%x:%x:%x:%x", &a, &b, &c, &d, &e, &f);
sprintf(temp, "%02X:%02X:%02X:%02X:%02X:%02X",a,b,c,d,e,f);
for (i=0; i<MAXADDRS; ++i)
{
if ((if_names[i] != NULL) && (strcmp(ifr->ifr_name, if_names[i]) == 0))
{
if (hw_addrs[i] == NULL)
{
hw_addrs[i] = (char *)malloc(strlen(temp)+1);
strcpy(hw_addrs[i], temp);
break;
}
}
}
}
cp += sizeof(ifr->ifr_name) + max(sizeof(ifr->ifr_addr), ifr->ifr_addr.sa_len);
}
close(sockfd);
}
使用的方法
- (void)getIPAddress
{
InitAddresses();
GetIPAddresses();
GetHWAddresses();
int i;
NSString *deviceIP = nil;
for (i=0; i<MAXADDRS; ++i)
{
static unsigned long localHost = 0x7F000001; // 127.0.0.1
unsigned long theAddr;
theAddr = ip_addrs[i];
if (theAddr == 0) break;
if (theAddr == localHost) continue;
NSLog(@"Name: %s MAC: %s IP: %s\n", if_names[i], hw_addrs[i], ip_names[i]);
}
}
[self getIPAddress]就能獲取當前IP地址。
Ⅲ 如何檢測一個設備的IP地址
不能通過ip判斷是什麼設備,因為任何互聯網終端都可以使用ip地址傳輸。
比如計算機內、手機、智能設備、網容絡設備等等。
ip地址:
IP地址是指互聯網協議地址(英語:Internet Protocol Address,又譯為網際協議地址),是IP Address的縮寫。IP地址是IP協議提供的一種統一的地址格式,為互聯網上的每一個網路和每一台主機分配一個邏輯地址,以此來屏蔽物理地址的差異。
Ⅳ 怎樣獲得網路列印機的IP地址
首先你要知道列印機的的IP地址
有二種情況,第一種你安裝了網路列印機伺服器這內個設備,這個設備說明書上有容一個IP地址
第二種就是你這個列印機本身是安裝另一個電腦上的,你到這個電腦上在「開始」_>「運行」輸入CMD回車就出來一個窗口
在這個窗口裡繼續輸入ipconfig就出現這個IP地址了,你就可以用這個IP進行安裝了
Ⅳ 計算機是如何自動獲取的IP地址的
設置自動獲取IP地址方法:
(1)右鍵「網路鏈接」選擇「屬性」打開網路連接管專理界面。
(2)在打開屬的窗戶中找到:Internet協議(TCP/IP) 雙擊打開或者單擊選中,單擊屬性。
(3)選擇自動獲取IP地址和選擇自動獲取DNS伺服器地址。
Ⅵ PC鏈接一個新設備單元相互通信,不知道設備的IP,怎麼才能獲取設備的地址
自動獲取的是你自己的網卡IP,要知道別人電腦的IP,可能下載一個『聚生網管』軟體進行掃描。
Ⅶ 如何獲取網路設備IP地址
需要作個ip地址規劃,比如多少機器,怎麼訪問等,ip地址是公有還是私有,是否只是內部用等。內舉例,內部1個c段私有地址192.168.200.0/24,有15台機器,5個一個網段,另外10個一個網段,就可以將這個c分成8個或者16個子網,每個子網32或者16個地容址。用192.168.200.0/255.255.255.248和192.168.200.32/255.255.255.248這兩個子網可滿足現狀,也有一定的可擴展性。
Ⅷ 如何通過IP地址找到相應的計算機或者設備。
1.看看設備上有沒有串口,如果有串口的話可以使用超級終端看,網路攝像機一般都是linux系統,回可以答使用ifconfig查看。
2.如果設備可以連接到你的計算機,可以點擊開始-運行-cmd,使用netstat -an查看設備與你的連接看ip。
3.如果清楚設備的默認ip,看看設備是否可以恢復出廠設置,然後使用默認ip登陸。
4.看看攝像機的說明書,一般都有介紹的或咨詢攝像機的廠家。
Ⅸ 如何在android 中獲取Wifi設備的IP地址
這個是路由器自動分配的。不幹你手機的事情。不過,要是IP有沖突的,內不能上網的可容以使用靜態地址 以下為復制黏貼,但絕對有效果 首先在你的電腦上(當然要是連著你無線路由器並能正常上網的那一台電腦)----開始----運行-----輸入cmd並確定-----輸入ipconfig並回車會出現一個信息框,不要關閉,如圖: 步驟二: 在你的手機上,設置--無線與網路--wlan設置--按menu--高級--靜態ip打勾,下面有五個要填的,先填第二個網關,就是你剛才ipconfig裡面看到的***ult gateway,然後第一項ip地址你自己設定一個,前三個數字跟網關的相同,最後一個數隨便起一個但是不要跟你的其他電腦重復,否則就會沖突,所以越古怪越好的數字比如118之類;第三項掩碼是255.255.255.0(也就是ipconfig中的subnet mask),最下面的兩個dns嘛,你網路一下你所在地的dns,比如「上海 dns」,照著搜索結果填進去就行了。
Ⅹ 如何獲取區域網內設備IP地址和MAC地址
在家用路由器上,如果區域網是動態分配的地址,以TPlink為例,在「DHCP客戶端」鏈接里可專以找到,如果是靜態分配的屬地址,在「靜態地址分配」鏈接里可以找到。上述關鍵字在不同設備和版本上不盡相同,也不一定是一模一樣的字樣,有的在arp列表裡。
在支持命令行的專業路由器上,用show arp或display arp可以查詢到。
arp是所有路由器支持的協議,通過ip去查詢mac地址,將三層報文在數據鏈路層上傳輸,路由器通過此協議周期性與區域網所有電腦交互信息,目的是確保路由器與電腦之間是否互通。
