Is the iphones mac address static? Looking for a way to identify which user is online - iphone

I am building an app where I do not want a loginsystem. I still want to be able to know what user is sending information to my online database. As far as I know, the UDID is not allowed to upload to any servers, so that is out of the question. Can I use the iphones mac address for this? If it is dynamic, it will change from time to time, and I won't be able to track it.

We use the MAC address as a unique identifier now the UDID has been deprecated.
MAC addresses are hardware based and therefore cannot be changed.

Related

Authenticate users using client MAC address?

This question is not language-aware.
I wanna know how can I recognize a returning user on my website (Java, PHP, Coldfusion...) if he's using a dynamic IP.
Why? A lot of users of my web application use iPhone (with 3G networking) for accessing. IP changes each time, so I always see them as "new" users.
I know it's unlikely to track MAC address in web pages but.... what solutions are there for such a common problem?
Maybe a suitable iPhone app? ;-)
It's not quite possible to find original requesting machine's MAC address. You should use Cookies to track users.
You can find more info about MAC Addresses here.
A Media Access Control address (MAC address) is a unique identifier
assigned to network interfaces for communications on the physical
network segment. MAC addresses are used for numerous network
technologies and most IEEE 802 network technologies, including
Ethernet. Logically, MAC addresses are used in the Media Access
Control protocol sub-layer of the OSI reference model.
Why not do what everybody else does and use cookies?
As other said, you could easier get what you want with cookies...
and, reading your question and purpose, i'm not really sure that if a user uses it's iPhone via wifi and browse to your website and than it come back again via 3G the MAC address doesn't change... i thought that MAC address is unique not for a device, but for a single hardware component in it: this mean that an iPhone could have a MAC for wifi hardware and a MAC for 3g hardware... if it works as on my powerMac... i can see my computer has a mac address for my ethernet and one other for my wifi...
but i'm not an hardware expert, so (all readers), please consider this answer as a question too, and if there is any net expert on line...

iOS Bluetooth printer?

Does anybody suggest a mobile printer able to print receipt with a good SDK to interface wireless an iOS application adhoc developed ? The printer should be small and should use rechargeable batteries for field use.
I cannot use wifi because not always a trusted access point (customer premises) is available, so I think to use Bluetooth, but of course any suggestion is welcome !
FYI I already checked Zebra printers SDK for iOS but it seems able to print only using a TCP/IP address, it means (for as I know) I should use wifi. In my case the application should be used in the field from an iPad connected with cellular network. In iPad there is no hot-spot and not always there is an available wifi access point tho connect the iPad and the printer the the same network to use TCP/IP addresses. That is the reason I'm guessing the last chance should be bluetooth.
Unfortunately iOS5 does not support Bluetooth printing.
http://support.apple.com/kb/ht3647
Have you considered VPN via WEP to a network printer?
Alternatively some printers can be set up with their own email address. PDF attachments can be sent via this address to be printed. These emails can be sent encrypted.
I know that this isn't the IDEAL answer, but it is likely to work for the time being until iOS is properly updated.
Yes, I have Bluetooth printer for IOS device, it is Apple MFI approved
see details from this URL http://www.bluebamboo.com/other_file/P25i%20Datasheet%20%28EN%29%20v1.0%2009-Oct-2011.pdf
I know you already accepted an answer, but here's another one: have the technician bring their own wireless base station (AirPort Express perhaps) and create his own wireless network (that won't have internet access, but that's not needed) with appropriate security. Then you can use any HP wireless capable printer and have the iOS device and the printer connect to the wifi network created by the wireless access point (which should be set with DHCP to vend IP addresses in a non-routable range like 192.168.x.x, obviously).
We also have a Bluetooth printer that is MFI certified along with an easy to understand iOS SDK. Please take a look at the EZPay App on the Appstore. The app's currently in Japanese (fir one of our clients) but the description explain a little about the printer. I'm currently traveling at the moment, but if you shoot me an email from the contact info on the App Store. I can get a few other things out to you. Cheers... B
No need to develop a full blown SDK, check out Mobi Print. it has the Zebra sdk already implemented and connects to any webservice or ODBC database. It also has stored label/receipt formats in there app so just upload your format and should be good to go.
here is link for Mobi Print

iphone app communication without using webservices

I want to send some Text plus a image from one iphone application to other iphone app but restriction is I should not use a web server in between communication,Is there any way to fulfill it ?
Details: There are two independent devices and could be far enough say out of network. My requirement one app adds some text with a image and sends it to another iphone which can be at any long distance , and the app installed in another iphone will read that info and image into itself.
Actually there is a solution that meets your needs — and that fits to bbums answer:
Create a HTTP-Server on the iPhone, using cocoahttpserver. than you will ask some webservice like whatismyip.com for your public ip. with this your iPhone can be connected worldwide.
But very likely ur wifi-network is not forwarding your port to the iPhone. Ash.
And even if: Now it gets difficult. How to publish your ip from one phone to the other? hmmm... — I got it: I will exchange the information in a centralized space! In the web!
... wait — that would be a Webserver.
You see: Without any kind of server in the Web the users would need to exchange ip manually and have full admin power and knowledge about the local network.
So IMHO bbums answer is the only way to go.
PS: I am working with http server running on iPhones. In local network that works great, especially with bonjour. And you can use them over distance network — but only with reconfiguration of your router — something you shouldn't force your user to do
There is far from enough information to provide a specific answer.
two apps on two different devices?
are the two devices on the same network?
are the two devices both on WiFi?
do you need the user to receive a notification or something if the app isn't running?
If on same device, you can define a custom URL handler in the destination app and then openURL: in the source app to pass the data over. Encode your image and text into the URL, but be careful of size limitations.
If on different devices, there are many possible solutions, but answering the above questions will be critical to actually knowing what solution is appropriate.
Given your comment -- two apps, different devices, arbitrary networks -- then you are going to have to have some kind of server in between. Note that the recently added Game Center does have the ability to rendezvous two users, but it has a very particular user experience that may not be appropriate to your needs.
I would suggest that you investigate using push notifications to notify the receiving user of the availability of content. As for moving the content between, no direct connection is possible and you will have to have some kind of store-and-forward server in between. And, yes, a web server is going to be the easiest possible solution simply because HTTP is ubiquitous these days.
If there's no network of any kind available, but both parties have amateur radio licenses, then hooking the two devices up to HF packet radios might work.
THIS is super EASY.
I would code up some software that can turn data into modem signal, like the good old dial up modem. The device would actually make those annoying buzzing sounds.
You get the phone number for your friends nearest landline and call him.
He places his iPhone near the phones receiver in listen mode and you connect to his phone using your audible modem.
Bingo, via the power of sounds you have sent data which is decoded on his device and all for the very cheap price of a phone call, there are pretty cheap these days especially if you use Skype.
Easy Way (relatively speaking)
A way two apps on different networks can communicate without setting up a web server of some sort is as follows.
Use an existing third party storage system like DropBox.
Each app would need the login and password for your DropBox. Then both apps can read and write files that the other app can see.
An existing app that does this is a shopping list app called ShopShop.
The app on my phone and my wife's phone both link to the same DropBox account and the app keeps the shopping list synced up when one of us adds something to the list.

Connect iPhone/iPad with Mac (the Apple way)

When Apple's Remote app tries to connect to a Mac (running iTunes) on a local network (using WiFi), the user needs to enter a passcode provided by the iPhone as a security measure. This approach has been adopted by a number of other apps (e.g., Rowmote, Pastebot, ...). Is there an API that provides this way of working?
Assuming Bonjour is in play, how does an iPhone checks if the passcode entered on a Mac is correct without resolving the NSNetService the Mac is publishing? Or does the iPhone resolve the NSNetService a Mac is publishing and waits for the passcode to be confirmed before processing any other packets that might be sent via the NSNetService (packets other than the passcode).
I have a solution for my problem, but I would like to know if there's an API I have overlooked that provides a ready-made solution.
Advice and pointers are welcome.
Thanks in advance,
Bart
I don't believe there is an Apple provided API for this. I simply use the Bonjour APIs to open a connection between two devices, then have one randomly create a 4 digit passcode and ask the other device for it. The other device presents a UI to ask the user for the passcode, then transmits it back and waits for an answer. If they match, the devices store each other's identifiers to skip over this process the next time they connect.
Edit: Thanks to tc for pointing out that this implementation isn't totally secure. I'm now having one device create a unique, random password, and send it over to the other device, then store the SHA1 hash of the password for future reference. Then the other device stores the password and sends it back over whenever it connects for authentication. The user does the number code thing once in order to let the devices know that they should trust each other in the future, but now in order for a reverse engineer to connect to a device they would have to know both the identifier of and password for a valid, connected device. (Or they'd have to have access to both devices and do the number code thing; there isn't really a way to stop anyone from doing that, obviously).

Smart Phone ! Iphone | Reading the device phone number HTTP etc

Does anyone know if one of these devices connect to the web whether their phone number can be read from a header or some other means?
Phone numbers don't go in HTTP headers. Your IP address will be visible to the web server, but that is it.
Edit:
Ah, I see you want to get the phone number. This is a privacy issue for many people and the consensus is that the minor inconvenience of having to explicitly enter a phone number is worth the peace of mind that no one is stealing it.
What you can do is ask the user for their number, and store it along with the phone's UDID in a database. Next time your app connects to your server, you can send it the phone's UDID and look up the number from that.
No, it's not passed across.