从Mobile Safari获取iPhone UDID和IMEI使用java servlet

Pra*_*h S 5 java iphone servlets mobile-safari ios

我想通过Mobile Safari获得iPhone UDID.我使用 .mobileconifg作为

<plist version="1.0">
    <dict>
        <key>PayloadContent</key>
        <dict>
            <key>URL</key>
            <string>http://192.168.12.45:8080/enroll/retrieve</string>
            <key>DeviceAttributes</key>
            <array>
                <string>UDID</string>
                <string>SERIAL</string>
                <string>CHALLENGE</string>
                <string>IMEI</string>
                <string>ICCID</string>
                <string>VERSION</string>
                <string>PRODUCT</string>
                <string>DEVICE_NAME</string>
                <string>MAC_ADDRESS_EN0</string>
            </array>
        </dict>
        <key>PayloadOrganization</key>
        <string>Org</string>
        <key>PayloadDisplayName</key>
        <string>Profile Service</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>D6F1B2A3-0039-48B5-915B-8E2B35663816</string>
        <key>PayloadIdentifier</key>
        <string>Identifer</string>
        <key>PayloadDescription</key>
        <string>This temporary profile will be used to find and display your current device's UDID.</string>
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

retrieve.php

<?php
  $data = file_get_contents('php://input');
  header('Location: http://192.168.12.45/enroll/info?'.$data, true, 301);
?>
Run Code Online (Sandbox Code Playgroud)

info是一个目录,而不是一个页面,我在这个目录中创建了index.php,我在$ _GET中获取了数据.

但我能从php获得.

但我想使用java servlet,我在servlet url上的mobileconfig文件中更改了url,但我无法在java中获取任何值.

检索Java代码

    Enumeration headerNames = request.getHeaderNames();
    while (headerNames.hasMoreElements()) {
        String paramName = (String) headerNames.nextElement();
        String paramValue = request.getHeader(paramName);
        System.out.println("paramValue :" + paramValue);
    }
Run Code Online (Sandbox Code Playgroud)

输出:

paramValue :192.168.12.45:8080
paramValue :keep-alive
paramValue :gzip, deflate
paramValue :Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53
paramValue :en-us
paramValue :text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Run Code Online (Sandbox Code Playgroud)

它显示这样的错误

在此输入图像描述

但我想要java servlet来获取IMEI.我想将上面的PHP代码更改为java servlet.如何解决这个问题并安装Profile以获取UDID和IMEI

小智 3

这可能是由于数据库文件或包含它的目录启用了加密。使用:

NSFileManager's setAttributes:ofItemAtPath:error:和NSFileProtectionNone