當前位置:首頁 » 幣種行情 » ipnetethaddrsize

ipnetethaddrsize

發布時間: 2022-07-26 23:07:14

Ⅰ 如何獲取當前配置的IPV6地址的前綴長度(掩

下述程序列印處掩碼長度,由此判斷前綴長度,good!

#include <sys/socket.h>
#include <netdb.h>
#include <ifaddrs.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <net/if.h>
#include <netinet/in.h>
#include <sys/types.h>

int
main(int argc, char *argv[])
{
struct ifaddrs *ifaddr, *ifa;
int family, s;
char host[NI_MAXHOST];
char host_netmask[NI_MAXHOST];

struct sockaddr_in6 *pip6 = NULL;
int i;

if (getifaddrs(&ifaddr) == -1) {
perror("getifaddrs");
exit(EXIT_FAILURE);
}

/* Walk through linked list, maintaining head pointer so we
can free list later */

for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
if (ifa->ifa_addr == NULL)
continue;

family = ifa->ifa_addr->sa_family;

/* Display interface name and family (including symbolic
form of the latter for the common families) */

printf("%s address family: %d%s\n",
ifa->ifa_name, family,
(family == AF_PACKET) ? " (AF_PACKET)" :
(family == AF_INET) ? " (AF_INET)" :
(family == AF_INET6) ? " (AF_INET6)" : "");

/* For an AF_INET* interface address, display the address */

if (family == AF_INET || family == AF_INET6) {
s = getnameinfo(ifa->ifa_addr,
(family == AF_INET) ? sizeof(struct sockaddr_in) :
sizeof(struct sockaddr_in6),
host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
if (s != 0) {
printf("getnameinfo() failed: %s\n", gai_strerror(s));
exit(EXIT_FAILURE);
}
getnameinfo(ifa->ifa_netmask,
(family == AF_INET)? sizeof(struct sockaddr_in): sizeof(struct sockaddr_in6),
host_netmask, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
if(AF_INET6==family)
{
pip6 = (struct sockaddr_in6 *)(ifa->ifa_netmask);
char *p = (char *)&(pip6->sin6_addr);
for(i=0;i<16;i++)
{
printf("%d ",*p);
p++;
}
}

printf("\taddress: <%s>\n", host);
printf("\tnetmaks: <%s>\n", host_netmask);
}
}

freeifaddrs(ifaddr);
exit(EXIT_SUCCESS);
}

Ⅱ 如何在LINUX中給一塊網卡綁定兩個IP地址

Linux的網路設備配置文件存放在/etc/sysconfig/network-scripts裡面,對於乙太網的第一個網路設備,配置文件名一般為 ifcfg-eth0 如果需要為第一個網路設備綁定多一個IP地址,只需要在/etc/sysconfig/network-scripts目錄裡面創建一個名為ifcfg-eth0:0的文件,內容樣例為: DEVICE="eth0:0" IPADDR="211.100.10.11Array" NETMASK="255.255.255.0" ONBOOT="yes" 其中的DEVICE為設備的名稱,IPADDR為此設備的IP地址,NETMASK為子網掩碼,ONBOOT表示在系統啟動時自動啟動。 如果需要再綁定多一個IP地址,只需要把文件名和文件內的DEVICE中的eth0:x加一即可。

Ⅲ 本機ip地址指的是什麼。用處在哪

本機ip地址:
即主機IP堆棧內部的IP地址,主要用於網路軟體測試以及本地機進程間通信,無論什麼程序,一旦使用回送地址發送數據,協議軟體立即返回之,不進行任何網路傳輸。
用處:
一、檢查主機的TCP/IP協議是否安裝並正常工作,方法:輸入以下代碼
c:\>ping127.0.0.1
Pinging127.0.0.1with 32 bytes of data:
Reply from127.0.0.1: bytes=32 time<1ms TTL=128
Reply from127.0.0.1: bytes=32 time<1msTTL=128
Reply from127.0.0.1: bytes=32 time<1ms TTL=128
Reply from127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Appro\eximate round trip time= in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
c:\>
二、用於網路軟體測試以及本地機進程間通信,方法:輸入以下代碼
/*
* server1.c
*
* Create TCP server socket, accept
* one TCP client connection using
* socket(), bind(), listen() and
* accept().
*
* foster <jamescfoster@ >
*/

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int
main (int argc, char *argv[])
{
struct sockaddr_in sin ;
struct sockaddr_in csin;
socklen_t len = sizeof(struct sockaddr);
short port = 0;
int csock = 0;
int sock = 0;
int ret = 0;

if(argc != 2)
{
printf("usage: %s: port\n", argv[0]);
return(1);
}

port = atoi(argv[1]);

sock = socket(AF_INET, SOCK_STREAM, 0);
if(sock < 0)
{
printf("TCP server socket() failed.\n");
return(1);
}

memset(&sin, 0x0, sizeof(struct sockaddr_in *));

sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = INADDR_ANY;

ret = bind(sock, (struct sockaddr *)&sin,
(struct sockaddr));
if(ret < 0)
{
printf("TCP server bind() failed.\n");
close (sock);
return(1 );
}

ret = listen(sock, 5);
if(ret < 0)
{
printf("TCP server listen() failed.\n");
close (sock);
return(1 );
}

printf("TCP server listening.\n");

memset(&csin, 0x0, sizeof(struct sockaddr));

csock = accept(sock, (struct sockaddr *)&csin, &len);
if(csock < 0)
{
printf("TCP server accept() failed.\n");
}
else
{
printf("TCP server: TCP client connection " \
"on port %d.\n", port);
close(csock);
}

close(sock);

return(0);
}

Ⅳ 怎麼實現c#獲取ip內網,外網地址

rivate static string getIPAddress ( )
{
System.Net.IPAddress addr;
// 獲得本機區域網IP地址
addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ;
return addr.ToString ( ) ;

讀取計算機名稱本機固定IP地址源程序
導入程序用到的名稱空間
using System ;
using System.Net;
using System.Windows.Forms ;
using System.Drawing ;
public class Form3 : Form
{
//定義二個標簽
private Label label1 ;
private Label label2 ;
public static void Main ( )
{
Application.Run ( new Form3 ( ) ) ;
}
// 構造窗體
public Form3 ( )
{
// 建立標簽並且初始化
this.label1 = new System.Windows.Forms.Label ( ) ;
this.label2 = new System.Windows.Forms.Label ( ) ;
//先繼承一個Label 類
label1.Location = new System.Drawing.Point ( 24 , 16 ) ;
label2.Location = new System.Drawing.Point ( 44 , 36 ) ;
//設定 Label的顯示位置
label1.Text = "主機名稱:" + System.Net.Dns.GetHostName ( ) ;
// 顯示本機的計算機名稱
label2.Text = "IP 地址:" + getIPAddress ( ) ;
// 顯示本機的區域網IP地址
label1.Size = new System.Drawing.Size ( 200 , 50 ) ;
label2.Size = new System.Drawing.Size ( 200 , 80 ) ;
//設定標簽的大小
label1.TabIndex = 0 ;
label2.TabIndex = 1 ;
label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;
label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;
// 設定標簽的對齊方式
this.Text = "獲得主機名稱和IP地址!" ;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent ;
this.AutoScaleBaseSize = new System.Drawing.Size ( 8 , 16 ) ;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D ;
// 設定窗體的邊界類型
this.ForeColor = System.Drawing.SystemColors.Desktop ;
this.Font = new System.Drawing.Font ( "宋體" , 10 , System.Drawing.FontStyle.Bold ) ;
// 設定字體、大小就字體的式樣
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide ;
this.ClientSize = new System.Drawing.Size ( 250 , 250 ) ;
//把標簽加到窗體中
this.Controls.Add ( this.label1 ) ;
this.Controls.Add ( this.label2 ) ;
}
private static string getIPAddress ( )
{
System.Net.IPAddress addr;
// 獲得本機區域網IP地址
addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ;
return addr.ToString ( ) ;
}
}

Ⅳ 你的內核下載的時候,你的那個變數設置ipaddr和ethaddr分別是什麼意思 ,從哪裡找到他們的值啊,求幫忙 謝

ipaddr是開發板的IP地址,ethaddr是開發板的物理地址

熱點內容
Rc車TRX4涉水視頻 發布:2025-08-01 05:45:53 瀏覽:809
辣條以太坊 發布:2025-08-01 05:45:02 瀏覽:357
螞蟻礦機z9mini算力 發布:2025-08-01 05:26:11 瀏覽:265
trx超級社區跑路了 發布:2025-08-01 05:05:03 瀏覽:374
挖lTC的項目 發布:2025-08-01 05:04:10 瀏覽:206
環保幣沒有礦機了怎麼辦 發布:2025-08-01 04:53:58 瀏覽:934
股市btc指數是指什麼意思 發布:2025-08-01 04:53:22 瀏覽:109
中國有防偽溯源的區塊鏈嗎 發布:2025-08-01 04:37:35 瀏覽:150
哥倫布區塊鏈是什麼 發布:2025-08-01 03:56:28 瀏覽:413
比特幣日賺1 發布:2025-08-01 03:50:50 瀏覽:501