小编Mad*_*ddy的帖子

添加链接本地地址

如果在接口上手动删除了IPv6链路本地地址,是否有办法在不关闭接口的情况下获取链路本地地址?该要求源于需要在接口上保留(IPv4)现有连接,但也需要在其上获取链路本地地址.

linux networking ipv6 linux-kernel link-local

13
推荐指数
1
解决办法
2万
查看次数

在单个系统调用中接收多个数据报

在Linux上,除非我弄错了,否则应用程序可以使用套接字调用系列在数据报传输上一次发送或接收一个数据包.

想知道Linux是否为应用程序提供了一种在数据报传输的单个调用中发送和接收多个数据包的方法.

linux network-programming

6
推荐指数
1
解决办法
2799
查看次数

使用ioctl分配ipv6地址

我正在尝试使用ioctl为接口分配IPv6地址,但是徒劳无功.这是我使用的代码:

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>             
#include <net/if.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/sockios.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>

#define IFNAME "eth1"
#define HOST "fec2::22"
#define ifreq_offsetof(x)  offsetof(struct ifreq, x)

int main(int argc, char **argv) {
  struct ifreq ifr;
  struct sockaddr_in6 sai;
  int sockfd;                     /* socket fd we use to manipulate stuff with */
  int selector;
  unsigned char mask;

  char *p;

  /* Create a channel to the NET kernel. */
  sockfd = socket(AF_INET6, SOCK_DGRAM, …
Run Code Online (Sandbox Code Playgroud)

networking ipv6

5
推荐指数
1
解决办法
6077
查看次数

在 python 和 bash 中处理 IP 和端口

使用 python 和 bash,我想完成两件事:

  1. 需要将格式为 [fec2::10]:80 的 ipv6 地址和端口组合拆分为 fec2::10 和 80。

  2. 给定 IP 地址和端口组合,我需要确定 IP 是 v4 还是 v6 地址。例如:1.2.3.4:80 和 [fec2::10]:80

请提出一种方法来做到这一点。

谢谢!

示例代码:

#!/usr/bin/env python

import optparse

def main():
    server = "[fec1::1]:80"
    if server.find("[", 0, 2) == -1:
       print "IPv4"
       ip, port = server.split(':')
    else:
       print "IPv6"
       new_ip, port = server.rsplit(':', 1)
       print new_ip
       ip = new_ip.strip('[]')

    print ip
    print port

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

这适用于所有情况,除非指定了没有端口的输入。例如:10.78.49.50 和 [fec2::10]

有什么建议可以解决这个问题吗?

python bash ip-address

5
推荐指数
2
解决办法
5437
查看次数

无法将UTF-16设置为区域设置

我无法在我的Linux机器上将UTF-16或其任何形式设置为区域设置.这个示例代码:

#include <iostream>
#include <string.h>
#include <locale.h>

using namespace std;

int main()
{
    char *ret = std::setlocale(LC_ALL, "en_US.utf16");
    if (ret) {
        cout << ret << endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出不会打印语言环境集,这意味着未设置所需的语言环境.

该框中支持的区域设置列表不包括任何形式的UTF-16编码.我通过检查了这个locale -a

$ uname -a
Linux developer.com 2.6.32-279.1.1.el6.x86_64 #1 SMP Tue Jul 10 11:24:23 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

是否需要安装某些东西才能在盒子上使用UTF-16?

linux utf-16

5
推荐指数
1
解决办法
2486
查看次数

在Python中分配空值或字符串

我想了解分配空值和空输出之间是否存在差异,如下所示:

1>分配这样的值

string = ""
Run Code Online (Sandbox Code Playgroud)

2>作为输出返回空值

string = "abcd:"
str1, str2 = split(':')
Run Code Online (Sandbox Code Playgroud)

换句话说,1>中'string'和2>中'str2'的值是否存在差异?如果一个方法作为参数传递,它将如何看到'str2'的值?

python

4
推荐指数
1
解决办法
7268
查看次数

Bash:需要在字符串周围删除单引号

以下是我的bash脚本中的代码段:

....
....
for ((i=0; i<${#abc[@]}; i++))
  do
    xyz=${abc[i]}
....
....
Run Code Online (Sandbox Code Playgroud)

当在脚本中替换'xyz'的值时,该值在其周围有单引号:

'"6b76cdae-a4a8-4e88-989d-1581ae2d5b98"'
Run Code Online (Sandbox Code Playgroud)

为什么添加单引号以及如何剥离它们?

谢谢!

bash

4
推荐指数
2
解决办法
5270
查看次数

地图中过期的weak_ptr会发生什么

我想了解weak_ptr已过期的地图中的条目(类型为boost :: weak_ptr)会发生什么.地图中的相应条目是否会自动删除?

键是整数,对应的值是weak_ptr.

我编写的示例代码,但无法编译

    #include <iostream>
    #include <map>
    #include <boost/enable_shared_from_this.hpp>

    using namespace std;

    class Foo : public boost::enable_shared_from_this<Foo> {
    public:
        Foo(int n = 0) : bar(n) {
            std::cout << "Foo: constructor, bar = " << bar << '\n';
        }
        ~Foo() {
            std::cout << "Foo: destructor, bar = " << bar << '\n';
        }
        int getBar() const { return bar; }
        boost::shared_ptr<Foo> inc_ref() {
            return shared_from_this();
        }
    private:
            int bar;
    };

    std::map<int, boost::weak_ptr<Foo> > mappy;

    int main()
    {
        boost::shared_ptr<Foo> sptr(new …
Run Code Online (Sandbox Code Playgroud)

c++ shared-ptr weak-ptr

4
推荐指数
1
解决办法
738
查看次数

postgres延迟索引

我们有一个将数据存储在postgres数据库中的系统.在某些情况下,数据库的大小已增长到几GB.

升级此系统时,将备份所述数据库中的数据,最后将其还原到数据库中.由于存在大量数据,索引在恢复期间需要很长时间才能完成(约30分钟),从而延迟升级过程.

有没有一种方法可以将数据复制和索引分成两个步骤,首先复制数据以完成升级,然后进行索引,这可以在以后的后台完成?

谢谢!

postgresql

3
推荐指数
1
解决办法
527
查看次数

前缀长度值为0

在IPv6中,前缀长度范围为0-128.前缀长度值为0的意义是什么?它是否表明没有网络?

谢谢!

networking ipv6

2
推荐指数
1
解决办法
2160
查看次数