1

我正在使用 at 命令将 3g 调制解调器连接到互联网。所有消息都显示一切正常,但没有 Internet 访问权限,并且 Windows 7 中的调制解调器状态已断开连接。来自调制解调器的 LED 就像它连接到互联网一样。我正在使用的命令是(按此顺序):

COM5 115200 4000

代码介绍:AT+CGREG? +CGREG: 0,1 正常

代码介绍:AT+CGREG=? +CGREG: (0-2) 确定

代码介绍:AT+CGREG? +CGREG: 0,1 正常

代码介绍:AT+COPS?+COPS: 0,2,"22603",0 OK

代码介绍:AT+CSQ +CSQ:21,99 OK

代码介绍: AT+CGATT=1 OK

代码介绍: AT+CGDCONT=1,"IP","broadband" OK

代码介绍: AT+CGACT=1,1 OK

代码介绍:AT+CEER +CEER:没有可用的原因信息 OK

代码介绍:AT+CGACT?+CGACT: 1,1 确定

代码介绍:AT+CGATT?+CGATT: 1 好

代码介绍:AT+CGREG? +CGREG: 0,1 正常

代码介绍:AT+CGDCONT? +CGDCONT: 1,"IP","宽带","0.0.0.0",0,0 OK

代码介绍: AT+CGACT=0,1 OK

代码介绍:AT+CEER +CEER:没有可用的原因信息 OK

代码介绍:AT+COPS?+COPS: 0,2,"22603",0 OK

代码介绍:AT+CSQ +CSQ:21,99 OK

代码介绍: AT+CGATT=1 OK

代码介绍: AT+CGDCONT=1,"IP","broadband" OK

代码介绍: AT+CGACT=1,1 OK

代码介绍:AT+CEER +CEER:没有可用的原因信息 OK

代码介绍:AT+CGACT?+CGACT: 1,1 确定

代码介绍:AT+CGATT?+CGATT: 1 好

代码介绍:AT+CGREG? +CGREG: 0,1 正常

代码介绍:AT+CGDCONT? +CGDCONT: 1,"IP","宽带","0.0.0.0",0,0 OK

代码介绍: AT+CGACT=0,1 OK

代码介绍:AT+CEER +CEER:没有可用的原因信息 OK

我错过了什么?

4

2 回答 2

1

可能在设备上建立连接是不够的,因为不会通知 windows 连接。您应该在 Windows 中设置调制解调器并使用它来建立连接。

DotRas是一个在 c# 中执行此操作的项目。但其他语言也可能有其他解决方案。如果您正在编写脚本,则可以查看 WMI。也有调制解调器类。

于 2015-01-28T07:50:08.963 回答
1

我已经找到了我的问题的答案。要通过 3g 调制解调器连接到 Internet,您需要创建一个拨号会话或使用现有的一个。Visual C# 中最简单的方法是使用 DotRas 库并创建 de dial-up。例子

private void connectbtn_Click(object sender, EventArgs e)

{
            string path = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.User);
            RasPhoneBook pbk = new RasPhoneBook();
            pbk.Open(path);
            RasDevice modem = RasDevice.GetDeviceByName("HUAWEI Mobile Connect - 3G Modem",RasDeviceType.Modem);
           //get the exact device name from windows
            RasEntry entry = RasEntry.CreateDialUpEntry("Broadband", "*99#", modem);
            entry.Options.RemoteDefaultGateway = true;
            if (RasEntry.Exists("Broadband", path) == false)
            { pbk.Entries.Add(entry); }
            RasDialer dialer = new RasDialer();
            dialer.EntryName = "Broadband";
            dialer.PhoneBookPath = path;
            dialer.Credentials = new NetworkCredential();

            dialer.Credentials.Domain = "broadband";
            dialer.PhoneNumber="*99#";
            dialer.Dial();

        }

请注意您的工作连接和互联网访问设置。

于 2015-01-28T18:25:55.980 回答