如何獲取設備的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地址
第一步:在電腦的左下角,點擊windows圖標,在裡面輸入cmd回車,或者快捷鍵win+r,再輸專入cmd
第二步:在裡面屬輸入ipconfig回車,裡面標注的就是電腦的ip地址,但是這個是在網關下的地址,如果想要查我們的外網地址呢?
第三步:打開網路搜索:輸入ip,裡面就是我們的寬頻的地址
③ 如何查看與自己電腦相連設備的IP地址
首先來單擊「開始」/「運源行」命令,在彈出的系統運行對話框中,輸入「cmd」命令,單擊「確定」按鈕後,將屏幕切換到MS-DOS工作狀態;然後在DOS命令行中執行「netstat
-n」命令,在彈出的界面中,你就能看到當前究竟有哪些地址已經和你的計算機建立了連接(如果對應某個連接的狀態為「Established」,就表明你的計算機和對方計算機之間的連接是成功的);再在DOS命令行中執行「netstat
-n」命令,看看現在又增加了哪個tcp連接,那個新增加的連接其實就是對方與你之間的UDP連接,查看對應連接中的「Foreign
Address」就能知道對方的IP地址了。
④ 如何獲取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
如果是三層交換機,這些命令就夠了,你還想怎麼?
1、show
mac-address
interface
-----埠
找到埠連接電腦的MAC
加入後四位為abcd
2、show
arp
|
inc
abcd
就知道了
⑥ 怎麼查看與電腦直連設備的IP
查看與電腦直連設備IP的方法如下:
一、使用Ping命名查詢IP
首先使用Windows+R鍵打開「運行」窗口,然後輸回入CMD進入命答令提示窗口。

⑦ 如何獲取區域網內設備IP地址和MAC地址
在家用路由器上,如果區域網是動態分配的地址,以TPlink為例,在「DHCP客戶端」鏈接里可專以找到,如果是靜態分配的屬地址,在「靜態地址分配」鏈接里可以找到。上述關鍵字在不同設備和版本上不盡相同,也不一定是一模一樣的字樣,有的在arp列表裡。
在支持命令行的專業路由器上,用show arp或display arp可以查詢到。
arp是所有路由器支持的協議,通過ip去查詢mac地址,將三層報文在數據鏈路層上傳輸,路由器通過此協議周期性與區域網所有電腦交互信息,目的是確保路由器與電腦之間是否互通。
⑧ 如何檢測一個設備的IP地址
不能通過ip判斷是什麼設備,因為任何互聯網終端都可以使用ip地址傳輸。
比如計算機內、手機、智能設備、網容絡設備等等。
ip地址:
IP地址是指互聯網協議地址(英語:Internet Protocol Address,又譯為網際協議地址),是IP Address的縮寫。IP地址是IP協議提供的一種統一的地址格式,為互聯網上的每一個網路和每一台主機分配一個邏輯地址,以此來屏蔽物理地址的差異。
⑨ 怎麼查看跟自己直連的設備iP地址
查看與電腦直連設備IP的方法
一、使用Ping命名查詢IP。
1、使用Windows+R鍵打開「運行」窗口,內然後輸入容CMD進入命令提示窗口。

