unix 下,发送原始数据报的权限问题

gogovista 2008-08-01 03:05:31
需求:要在程序中实现 ping 的功能,判断远程主机通不通。
有两个办法:
1、 sys 系统调用,使用 unix 自带的ping工具,分析重定向的结果,判断远程主机通不通
缺点:各种 os 自带的 ping 返回值差别大,变化多,不利于维护

2、自己在程序里写一个 ping 函数
麻烦来了:创建原始套接字(socket_row),需要 root 权限,但不可能为了这个程序,让机器在 root 下裸奔。

俺于是想了个办法:在创建套接字之前,把权限改为 root ,创建成功之后在改为普通用户。

只是这个想法可行吗?可行的话,该怎么行?
...全文
49 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin_style 2008-08-01
  • 打赏
  • 举报
回复
可以
先用root编译
把X位设为S

接着用普通用户运行即可
xkyx_cn 2008-08-01
  • 打赏
  • 举报
回复
试试呗,不试咋知道结果呢
wangdeqie 2008-08-01
  • 打赏
  • 举报
回复
作业题?up

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧