मैं लिनक्स में एक सी प्रोग्राम का उपयोग कर मैक पता खोजना चाहता हूं। इसे कैसे करना है?सी प्रोग्राम का उपयोग कर लिनक्स में एक इंटरफ़ेस के लिए मैक पता कैसे प्राप्त करें?
6
A
उत्तर
26
1 गूगल throug खोज की मिनट (i इसे अपने आप को परीक्षण नहीं किया, मैं पल में एक विंडोज़ मशीन पर काम कर रहा हूँ)
/*
* gethwaddr.c
*
* Demonstrates retrieving hardware address of adapter using ioctl()
*
* Author: Ben Menking <[email protected]>
*
*/
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
int main(int argc, char *argv[])
{
int s;
struct ifreq buffer;
s = socket(PF_INET, SOCK_DGRAM, 0);
memset(&buffer, 0x00, sizeof(buffer));
strcpy(buffer.ifr_name, "eth0");
ioctl(s, SIOCGIFHWADDR, &buffer);
close(s);
for(s = 0; s < 6; s++)
{
printf("%.2X ", (unsigned char)buffer.ifr_hwaddr.sa_data[s]);
}
printf("\n");
return 0;
}
2
ईथरनेट का प्रबंधन करने के लिए एक महान पुस्तकालय नहीं है। यदि आप निम्न स्तर की सामग्री पर जाना चाहते हैं तो यह निश्चित रूप से सीखने लायक है। सीखने के लिए यह काफी कठिन सीपीआई है।
लिब पीसीएपी।
कुछ नमूना कोड:
#include <pcap.h>
#include <stdlib.h>
#include <netinet/ip.h>
#include <netinet/if_ether.h>
void find_eth_addr(struct in_addr *search_ip, const struct pcap_pkthdr* pkthdr, const u_char *packet) {
struct ether_header *eth_hdr = (struct ether_header *)packet;
if (ntohs(eth_hdr->ether_type) == ETHERTYPE_IP) {
struct ip *ip_hdr = (struct ip *)(packet + sizeof(struct ether_header));
if (ip_hdr->ip_dst.s_addr == search_ip->s_addr)
print_eth_addr(eth_hdr->ether_dhost);
if (ip_hdr->ip_src.s_addr == search_ip->s_addr)
print_eth_addr(eth_hdr->ether_shost);
}
}
नहीं है भी अच्छा पुस्तकालय की तरह "कर्नेल कार्यों आवरण": Dnet
जो महान सुविधा प्रदान करता है निम्न स्तर नेटवर्किंग पर इसका इस्तेमाल करने । (मैक पते भी प्राप्त कर रहे हैं)।
दोनों पुस्तकालयों के लिए यूनिक्स & जीत बंदरगाहों रहे हैं।
संबंधित मुद्दे
- 1. एंड्रॉइड में वाईफ़ाई इंटरफ़ेस का मैक पता कैसे प्राप्त करें?
- 2. वाईफाई नेटवर्क इंटरफ़ेस का मैक पता कैसे प्राप्त करें?
- 3. पीसी के लिए एक स्थिर मैक पता कैसे प्राप्त करें?
- 4. एंड्रॉइड ईथरनेट मैक पता प्राप्त करें (वाईफ़ाई इंटरफ़ेस नहीं)
- 5. सी प्रोग्राम के ऑपकोड कैसे प्राप्त करें
- 6. लिनक्स/मैक ओएसएक्स में नेटवर्क एडाप्टर आंकड़े कैसे प्राप्त करें?
- 7. सी ++ का उपयोग कर लिनक्स में फ़ाइल के मालिक का नाम कैसे प्राप्त करें?
- 8. सी प्रीप्रोसेसर में भरोसेमंद मैक ओएस एक्स, आईओएस, लिनक्स, विंडोज का पता लगाने के लिए कैसे?
- 9. लिनक्स में सी/सी ++ में उपयोगकर्ता नाम कैसे प्राप्त करें?
- 10. पायथन का उपयोग कर माउस डेल्टा प्राप्त करें! (लिनक्स में)
- 11. मेरे सी ++ प्रोग्राम में COM dll का उपयोग कैसे करें
- 12. सी/सी ++ का उपयोग कर लिनक्स उपयोगकर्ता कैसे बनाएं?
- 13. सी प्रोग्राम कैसे प्रतीक्षा करें (लिनक्स पर)?
- 14. सी का उपयोग कर लिनक्स में खुले सॉकेट की सूची कैसे प्राप्त करें?
- 15. मैं लिनक्स पर एक सी ++ प्रोग्राम डीबग करने के लिए ग्रहण का उपयोग कैसे करूं?
- 16. HttpServlet से क्लाइंट का मैक पता कैसे प्राप्त करें?
- 17. लिनक्स में चल रहे सी ++ प्रोग्राम को डीबग कैसे करें?
- 18. वीबी का उपयोग कर स्थानीय आईपी पता कैसे प्राप्त करें?
- 19. लिनक्स को सी ++ प्रोग्राम के अंदर से कैसे पुनरारंभ करें?
- 20. जीडीबी का उपयोग कर लिनक्स के तहत फ़ैम में लिखे गए प्रोग्राम को डीबग कैसे करें?
- 21. प्रोग्रामिंग के लिए खिड़की के संकल्प और लिनक्स में सिस्टम का समाधान कैसे प्राप्त करें?
- 22. लिनक्स: मैं एक विशिष्ट नेटवर्क इंटरफ़ेस का उपयोग करने के लिए कैसे मजबूर करूं?
- 23. लिनक्स: एक सी प्रोग्राम लिखें जो एक शेल
- 24. सी में सीपीयू उपयोग कैसे प्राप्त करें?
- 25. सी # में vtable पता प्राप्त करें?
- 26. जावा का उपयोग करके ईथरनेट पता कैसे प्राप्त करें?
- 27. प्रोग्राम के जुड़ा मैक कंप्यूटर
- 28. एक प्रोग्राम में मैक कैमरा का उपयोग करने के लिए नमूना कोड?
- 29. मैं सी का उपयोग कर लिनक्स में एक स्वर कैसे चला सकता हूं?
वैसे भी इसे हार्डकोडिंग "eth0" के बिना प्राप्त करने के लिए ?? –
आपको नेटवर्क एडाप्टर असाइन करना होगा, अन्यथा कोई मैक पता नहीं है, आप इसे इनपुट या तर्क के रूप में कर सकते हैं, लेकिन आपको एडाप्टर की आवश्यकता होगी। –
# बंद करने के लिए शामिल करें() –
notlesh